2012-04-12 59 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