Django ModelChoiceField是否预先填充了数据?
我有一个名为Django ModelChoiceField是否预先填充了数据?,django,forms,foreign-keys,field,Django,Forms,Foreign Keys,Field,我有一个名为Phase2Form的Django表单,它有一个名为purchase\u order的modelcoocefield。我希望在用户进入表单时已选择特定的采购订单。我知道如果使用CharField或类似工具,我将如何执行此操作,但我不知道如何使用modelcochefield执行此操作。我将知道ForeignKey采购订单的主键(它将是URL的一部分) 我尝试了以下方法,但没有成功 def escalate(request, po): if request.method == 'P
Phase2Form
的Django表单,它有一个名为purchase\u order
的modelcoocefield
。我希望在用户进入表单时已选择特定的采购订单
。我知道如果使用CharField
或类似工具,我将如何执行此操作,但我不知道如何使用modelcochefield
执行此操作。我将知道ForeignKey采购订单的主键(它将是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,})
谢谢你的帮助 看起来您基于url的采购订单设置处于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,})
与此视图匹配的URL模式如何?@karthikr相关的模式是URL(r'^po/(\d+)/p2/$,升级)
,这非常有意义。我现在无法访问该项目。我明天早上试试,看看是否有效。谢谢我刚刚尝试了你的解决方案,它似乎没有解决任何问题<代码>采购订单
在我转到page.Oops时仍然设置为-----------
。不要介意。工作完美。我不小心移动了请求。POST
术语。