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文件的一部分
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Create" />
</form>
我认为这个表(它说的那个表缺失了)将由django自动创建。
答案 0 :(得分:0)
您需要为新模型应用迁移。在项目的文件夹中,运行
manage.py makemigrations [application_name]
manage.py migrate [application_name]
此处[application_name]
是可选的(您可以将其替换为实际修改的Django应用程序的名称,或省略它。)
如果您使用的是Python3,则可能需要运行python3 manage.py ...
而非manage.py ...
。
答案 1 :(得分:0)
可能是因为您尚未将应用my_app
添加到settings.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',
)
答案 2 :(得分:0)
我的应用程序中没有带有 init .py文件的迁移文件夹。一旦我创造了这两件事,现在一切似乎都有效。谢谢你的回复。
答案 3 :(得分:0)
您可能需要专门致电您的应用:
python manage.py makemigrations yourappname
python manage.py migrate --no-initial-data YOURAPPNAME