所以我有这段代码:
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未设置。为什么会这样?
编辑:第一段代码工作正常,我对它非常满意。这个问题与第二段代码有关,最初是我所拥有的(以及我刚刚花了一些时间在做什么),对我而言,这些代码“很奇怪”答案 0 :(得分:2)
第一个代码段动态设置relationshipId
字段,而不是从Web请求中提供的POST参数中获取它。
第二个代码段会直接从request.POST
获取该值,因此如果您的表单提交的值无效,或者没有给出值,则不会进行验证。
initial
参数仅适用于未绑定的表单(请参阅https://docs.djangoproject.com/en/1.5/ref/forms/fields/#initial)。您可以将其留在此处,因为您将表单绑定到post
或request.POST
。