2011-08-28 105 views
1

從「使用django學習網站開發」學習django。在第3章,構建書籤數據模型,我所不同for--在呈現時捕獲到DatabaseError:no such column:bookmarks_bookmark.title

from django.contrib.auth.models import User 
class Bookmark(models.Model): 
title = models.CharField(maxlength=200) 
user = models.ForeignKey(User) 
link = models.ForeignKey(Link) 

給出的說明和代碼,其中我改變

title = models.CharField(maxlength=200) 

title = models.CharField(max_length=200) 

,因爲我是歌廳一條錯誤消息。之後,我運行了python manage.py syncdb,然後運行python manage.py sql書籤。當我檢查http://localhost:8000/user/my_username,我得到這個錯誤信息:

Request Method:  GET 
Request URL: http://127.0.0.1:8000/user/j/ 
Django Version:  1.3 
Exception Type:  TemplateSyntaxError 
Exception Value:  

**Caught DatabaseError while rendering: no such column: bookmarks_bookmark.title** 

看這件事,我才知道,sqlite3的,我用的數據庫,找不到bookmarks_bookmark.title。我回到書中以確保我已經正確複製了所有內容,並且除了更改了該部分(max_length)之外,我完成了該操作。當我運行python manage.py sql書籤時,它給了我 -

BEGIN; 
CREATE TABLE "bookmarks_bookmark" (
"id" integer NOT NULL PRIMARY KEY, 
"title" varchar(200) NOT NULL, 
"user_id" integer NOT NULL REFERENCES 
"auth_user" ("id"), 
"link_id" integer NOT NULL REFERENCES 
"bookmarks_link" ("id"), 
); 
CREATE TABLE "bookmarks_link" (
"id" integer NOT NULL PRIMARY KEY, 
"url" varchar(200) NOT NULL UNIQUE 
); 
COMMIT; 

如何解決這個問題?謝謝!

+1

我感覺有點昏昏沉沉的,現在所以這可能是遙遠,但是你嘗試做了'manage.py syncdb'? –

+1

嘗試刪除您的sqlite數據文件並重新運行syncdb – akonsu

回答

3

手動刪除作品。

sqlite3 yourdb.db 
> drop table bookmarks_bookmark; 
> .quit 
cd yourpythonproj 
python2 manage.py syncdb 
python2 manage.py runserver 

bash腳本

#!/bin/bash 
sqlite3 ../yourdb.db 'drop table yourtable' 
python2 manage.py syncdb 
+0

也--python manage.py重置數據庫名稱 –

相關問題