2012-04-12 95 views
0

我正在关注Django书籍(Django 1.0网站开发)。我发现这本书虽然简单易读,但没有提供细节。但是,我遇到了这个错误,我一直无法在网上找到解决方案。谢谢你的帮助。Django get方法产生错误

下面,我将Tag类添加到我的models.py文件中。

from django.db import models 
from django.contrib.auth.models import User 


class Link(models.Model): 
    url = models.URLField(unique=True) 



class Bookmark(models.Model): 
    title = models.CharField(max_length=200) 
    user = models.ForeignKey(User) 
    link = models.ForeignKey(Link) 



class Tag(models.Model): 
    name = models.CharField(max_length=64, unique=True) 
    bookmarks = models.ManyToManyField(Bookmark) 

然后我尝试在Python Shell中运行下面的代码:

from bookmarks.models.import * 
bookmark = Bookmark.objects.get(id=1) 

其结果是,我得到以下错误:

Traceback (most recent call last): 
File "(console)", line 1, in (module) 
File "c:\Python27\lib\site\-packages\django\db\models\manager.py", line 132, in get 
    return self.get_query_set().get(*args, **kwargs) 
File "c:\Python27\lib\site-packages\django\db\models\query.py", line 349, in get 
    % self.model._meta.object_name) 
DoesNotExist: Bookmark matching query does not exist. 

回答

1

错误的含义就是它所说的。如果数据库中没有与QuerySet给出的条件相匹配的对象,则DoesNotExistQuerySet.get()引发。在这种情况下,这意味着数据库中没有Bookmark对象,ID等于1.

1

你在添加任何数据Bookmark表没有?如果没有对应于您的查询的记录,则为DoesNotExist is raised by get。即如果没有对应于id=1的记录。

+1

最简单的方法添加它是通过启用管理界面并从管理页面添加它 – 2012-04-12 18:35:03

+0

谢谢,但我从Pyhthon贝壳 – suffa 2012-04-12 18:44:54