【发布时间】:2018-03-26 18:09:51
【问题描述】:
我已经为此苦苦思索了好几个星期,但我决心让 ModelForm 工作!当您使用从 ModelForm 接收的数据处理 POST 时,我知道您需要从数据库中获取原始记录,然后使用该原始记录作为“实例”创建一个新表单。这是documented in the Django docs,如下:
>>> 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。但是,如果您从 request.POST 读取数据,您如何知道 pk,假设 POST 基于您之前的数据写到屏幕上? ModelForm 不存储 pk。那么,你从哪里捡起这个?没有它,你怎么知道从数据库中拉出哪条记录(如上面的'a')?
谢谢!
本
【问题讨论】:
-
例如,您可以通过 url 将其传递给您的视图。 /articles/update/1/
标签: django django-forms