开发者

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

Learning django from "learning website development using django". In chapter 3, building a bookmark data model, I followed the instructions and code given except for--

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

where I changed

title = models.CharField(maxlength=200)

into

title = models.CharField(max_length=200)

as I was geting an error message. After that, I ran python manage.py syncdb, then, python manage.py sql bookmarks. When I checked http://localhost:8000/user/my_username, I get this error message:

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**

Looking this up, I learned that sqlite3, the database i was using, cannot find bookmarks_bookmark.title. I went back into the book to make sure I have everything copied correctly, and I did except for that part that I changed (max_length). When I ran python manage.py sql bookmarks, it gave me--开发者_开发知识库

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;

How do I fix this? Thanks!


Manual deleting works.

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

bash script

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜