几个星期以来,我一直在努力解决这个问题,但我决心让 ModelForm 工作!当您使用从 ModelForm 接收到的数据处理 POST 时,我知道您需要从数据库中获取原始记录,然后使用该原始记录作为“实例”创建一个新表单。这在 Django 文档中记录如下:
>>> 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”)?
谢谢!
Ben
您可以在 URL 中使用命名组将参数传递给您的视图。
所以如果你有一个像这样的网址:
url(r'^articles/update/(?P<article_id>[0-9]+)/$', views.update_article)
你可以在你的观点中使用:
def update_article(request, article_id=None):
pass
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句