我一直在这个问题上抨击了几个星期,但我决心让ModelForm工作!当您使用从ModelForm接收的数据处理POST时,我知道您需要从数据库获取原始记录,然后使用该原始记录创建一个新表单作为“实例”。这是documented in the Django docs如下:Django如何从ModelForm获取记录ID
>>> from myapp.models import Article
>>> from myapp.forms import ArticleForm
# Create a form instance from POST data.
>>> f = ArticleForm(request.POST)
# Save a new Article object from the form's data.
>>> new_article = f.save()
# Create a form to edit an existing Article, but use
# POST data to populate the form.
>>> a = Article.objects.get(pk=1)
>>> f = ArticleForm(request.POST, instance=a)
>>> f.save()
在这个例子中,他们知道他们正在寻找记录的PK是1,但你怎么知道的PK,如果你从request.POST读取数据,假设POST是基于您之前写入屏幕的数据? ModelForm不存储pk。那么,你从哪里挑选这个?没有它,你怎么知道哪个记录从数据库中退出(如上面的'a')?
谢谢!
本
你可以将它传递到您的视图通过URL例如。/articles/update/1/ – efkin