從「使用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;
如何解決這個問題?謝謝!
我感覺有點昏昏沉沉的,現在所以這可能是遙遠,但是你嘗試做了'manage.py syncdb'? –
嘗試刪除您的sqlite數據文件並重新運行syncdb – akonsu