2012-05-27 58 views
1

我試圖創建一個應用程序,其中所有數據都屬於一個用戶,而用戶只能訪問他們自己的數據(例如電子郵件)。我在我的models.py文件中建模如下:爲什麼Django不能創建由manage.py指定的數據庫列sql

from django.contrib.auth.models import User 
from django.db import models 
... 

class Foo(models.Model): 
    owner=ForeignKey(User, related_name='foos') 

這似乎工作正常。

python manage.py sql appFoo 

顯示SQL包括

CREATE TABLE "appFoo_foo" (
    "id" integer NOT NULL PRIMARY KEY, 
    "owner_id" integer NOT NULL REFERENCES "auth_user" ("id") 
    ... 

的問題,不過,出現當我嘗試刪除我爲測試目的創建的用戶,使用

User.objects.exclude(username='root').delete() 

,並使用內置兩個在Django的管理員應用程序。無論哪種情況,我都會收到一個數據庫錯誤,指出表appFoo_foo沒有名爲owner_id的列。這是在運行syncdb之後。有關爲什麼會發生這種情況的任何想法?

回答

0

我發誓我在問這個問題之前先找了相關的問題,但直到問了之後纔看到Database error : no such column: connect_connect.reciever_id。我的問題是一樣的。基本上,我添加了一個字段到我的模型,並期望syncdb相應地修改數據庫,但顯然它不。我不得不跑

manage.py reset appFoo 

再次跟着syncdb,它就像一個魅力。

編輯:我只是現在閱讀重置已棄用,你可以使用刷新。

相關問題