2012-12-10 78 views
1

DatabaseError在/管理/德爾馬瓦/事件/ 沒有這樣的列:delmarva_event.eventdate數據庫錯誤的Django

我在models.py文件中創建一個類:

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

class Event(models.Model): 
    eventname = models.CharField(max_length = 100) 
    eventdate = models.DateField() 
    eventtime = models.TimeField() 
    address = models.CharField(max_length = 200) 
    user = models.ForeignKey(User) 

    def __unicode__(self): 
     return self.eventname 

,現在當我嘗試在我的管理員或我的main_page中查看我的事件,它給了我沒有eventdate的錯誤。我試着再次同步數據庫,但沒有任何改變。此外,我標記了eventdate,以查看是否收到其他錯誤,並指出delmarva_event.eventtime也不存在。我這很奇怪,因爲它與eventname沒有問題。任何建議將不勝感激!

回答

3

如果您修改模型,syncdb不起作用。您需要一個稱爲south 的第三方工具,爲您管理這些「遷移」。

如果沒有, - 其他 - 非具體的方法是刪除該表並重新創建它

1

這個問題可能是你沒有執行syncdb,然後加入EVENTDATE列。 Syncdb只創建一次表格,並且不會更新它們。您需要使用South應用程序並進行遷移或刪除表格,然後再次使用syncdb。

+0

你怎麼稱呼南方的應用程序? – Megan

+0

您將在文檔中找到說明。簡而言之,您將通過manage.py schemamigration appname --initial創建第一個遷移,從這一點開始,syncdb將忽略此應用程序中的所有模型,並且必須使用manage.py migrate appname(appname是必需的)。如果您已經有表格,則必須僞造第一個遷移(參數 - 僞0001)。然後更改模型並調用manage.py schemamigration appname --auto,然後再次遷移。如果您重命名字段,則必須手動遷移。請檢查文檔,這是你需要的;) – Bruce

0

一個快速解決方案是刪除數據庫,然後再次運行syncdb。它應該與manage.py文件位於同一個目錄中。

+0

謝謝! :d – Megan