2016-03-10 20 views
0

新的python/django。我有一個模型,「評論」,我創建。我有一個觀點,我想創建一個新的評論模型。當我這樣做(點擊提交按鈕((實際上是 「創建」 按鈕))),我得到:我不明白爲什麼我的數據庫沒有用新的模型更新

ProgrammingError at /reviews/ (1146, "Table 'my_app.my_app_comment' doesn't  
exist") 

models.py

class Comments(models.Model): 
    comment_text = models.CharField(max_length=600, default="None") 
    recipe = models.ForeignKey('cookbook.BaseRecipe', related_name='val1') 

views.py

class CommentCreate(CreateView): 
    model = Comments 
    fields = ['comment_text'] 
    template_name = 'commentcreate.html' 
    success_url = 'commentcreate.html' 

urls.py

urlpatterns = [ 
url(r'^$', CommentCreate.as_view(), name='comment') 
] 

commentcreate.html fil的一部分e

<form action="" method="post">{% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value="Create" /> 
</form> 

我以爲這個表(它所說的缺失的)將由django自動創建。

+0

你做了syncdb嗎?我不好意思,你正在使用新版本,你需要 python manage.py makemigrations –

+1

你需要運行'manage.py makemigrations' /'migrate' .. – Sayse

+0

我試着做兩個make遷移和遷移。它告訴我他們沒什麼可更新的 – ratrace123

回答

0

您需要爲新機型申請遷移。在項目的文件夾,運行

manage.py makemigrations [application_name] 
manage.py migrate [application_name] 

這裏[application_name]是可選的(可能與實際修改Django應用程序的名稱來替代它,或者忽略它)。

如果您使用Python3,則可能需要運行python3 manage.py ...而不是manage.py ...

0

可能是因爲你還沒有添加你的應用程序my_appsettings.py。更新您的settings.py這樣的:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'my_app', 
) 
0

不知怎的,我沒有在我的應用程序的初始化的.py文件遷移文件夾。一旦我創造了這兩件事,現在一切似乎都奏效了。感謝您的迴應。

0

您可能需要調用您的應用程序具體爲:

  1. 在settings.py包括應用程序名稱
  2. 運行python manage.py makemigrations yourappname
  3. python manage.py migrate --no-initial-data YOURAPPNAME
  4. 檢查遷移表數據庫,看看你已經有一些針對該應用的遷移。
  5. 如果沒有任何工作,或者您在遷移時遇到問題,則可以刪除表中的所有條目,刪除遷移文件夾並再次運行(1)。
相關問題