DJANGO - 用request.POST更改表单值?

时间:2012-09-25 18:31:25

标签: django

所以我有这段代码:

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未设置。为什么会这样?

编辑:第一段代码工作正常,我对它非常满意。这个问题与第二段代码有关,最初是我所拥有的(以及我刚刚花了一些时间在做什么),对我而言,这些代码“很奇怪”

1 个答案:

答案 0 :(得分:2)

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

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

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