1

所以我有这个代码:

post = request.POST.copy()
post['relationshipId'] = theRelationship.id
theStory = StoryForm(post, request = request, initial {'relationshipId' : theRelationship.id})

最初,我的代码如下所示:

theStory = StoryForm(request.POST, request = request, initial {'relationshipId' : theRelationship.id})

这导致了验证问题。验证器会抱怨没有设置 relationshipId。为什么会这样?

编辑:第一段代码运行良好,我对此非常满意。问题与第二个代码块有关,它最初是我所拥有的(以及我刚刚花了一些时间处理的),对我来说,它表现得“奇怪”

4

1 回答 1

2

第一个片段relationshipId动态设置字段,而不是从 Web 请求中提供的 POST 参数中获取它。

第二个片段将直接从 中获取该值request.POST,因此如果您的表单提交无效值,或者如果没有给出值,它将不会验证。

initial参数仅适用于未绑定的表单(请参阅https://docs.djangoproject.com/en/1.5/ref/forms/fields/#initial)。您可以将其留在这里,因为您将表单绑定到postor request.POST

于 2014-06-15T18:14:58.203 回答