Django get方法产生错误

时间:2012-04-12 17:39:28

标签: django django-models

我正在关注Django书(Django 1.0网站开发)。我发现这本书虽然直截了当,易读,却遗漏了一些小细节。但是,我得到的这个错误,我还没能在网上找到解决方案。谢谢你的帮助。

下面,我将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.

2 个答案:

答案 0 :(得分:1)

您是否在Bookmark表中添加了任何数据? DoesNotExist is raised by get如果没有与您的查询对应的记录。即如果没有与id=1对应的记录。

答案 1 :(得分:1)

错误意味着它所说的内容。如果数据库中没有符合DoesNotExist条件的对象,QuerySet.get()会引发QuerySet。在这种情况下,它表示数据库中没有Bookmark对象,ID等于1.