我有一个名为Phase2Form
的Django表单,其中ModelChoiceField
名为purchase_order
。我想在用户转到表单时选择一个特定的purchase_order
。我知道如果它在CharField
或类似地方,我会怎么做,但我不知道如何使用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,})
感谢您的帮助。
答案 0 :(得分:0)
看起来您基于网址的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,})