1

我有一个名为的 Django 表单Phase2Form,它有一个ModelChoiceField被调用的purchase_order. purchase_order当用户转到表单时,我希望已经选择了一个特定的选项。我知道如果在 aCharField或类似的地方我会怎么做,但我不知道如何用ModelchoceField. 我会知道 ForeignKey 的主键purchase_order(它将是 URL 的一部分)。

我尝试了以下方法,但没有成功。

def escalate(request, po):
  if request.method == 'POST':
    form = Phase2Form(request.POST, initial={'purchase_order': PurchaseOrder.objects.get(pk=po) })
    if form.is_valid():
      form.save()
      return HttpResponseRedirect('/po/p2/')
    else: 
      return render(request, 'input.html', {'input_type': 'Phase 2', 'formset': form, 'error': True})
  else: 
    form = Phase2Form()
    return render(request, 'input.html', {'input_type': 'Phase 2','formset': form,})

谢谢你的帮助。

4

1 回答 1

0

看起来您基于 url 的 purchase_order 设置处于 request.POST 条件中,该条件仅在表单发布时设置。将初始值设置下移到 else 条件。

  else: 
    form = Phase2Form(initial={'purchase_order': PurchaseOrder.objects.get(pk=po) })
    return render(request, 'input.html', {'input_type': 'Phase 2','formset': form,})
于 2013-06-11T01:17:24.113 回答