我有两个表单,一个是CreateOrderForm,一个是CreateManifestForm。 提交 CreateOrderForm 会呈现 CreateManifestForm。
在CreateOrderForm的"引用"中有一个输入,这是用户输入的,但随后应该默认进入CreateManifestForm的"引用字段"。 我似乎无法弄清楚如何将该值从一个表单传递到另一个表单
形式。.PY
class CreateOrderForm(forms.ModelForm):
class Meta:
model = Orders
fields = ('reference', 'ultimate_consignee', 'ship_to', 'vessel', 'booking_no', 'POL',....)
class CreateManifestForm(forms.ModelForm):
class Meta:
model = Manifests
fields = ('reference', 'cases', 'description', 'count')
视图。.PY
def add_order(request):
if request.method == "POST":
form = CreateOrderForm(request.POST)
if form.is_valid():
form.save()
return redirect('add_manifest')
else:
form = CreateOrderForm()
return render(request, 'add_order.html', {'form': form})
def add_manifest(request):
if request.method == "POST":
form = CreateManifestForm(request.POST)
if form.is_valid():
form.save()
return redirect('add_manifest')
form = CreateManifestForm()
manifests = Manifests.objects.all()
context = {
'form': form,
'manifests': manifests,
}
return render(request, 'add_manifest.html', context)
如您所见,每个表单中都有一个用于"参考"的字段,我想让用户在 CreateOrderForm 中输入该字段,并在创建清单时将该值传递给默认值。 任何帮助都非常感谢,提前感谢您。
您可以尝试一个解决方案:使add_manifest
URL 具有类似
path('add-manifest/<int:reference_id>/', name='add_manifest`)
,然后在视图更新中:
return redirect('add_manifest') # in add_order function
自:
return redirect('add_manifest', kwargs={'reference_id': form.reference})
现在,在add_manifest
视图中,您可以从以下位置访问引用:
request.resolver_match.kwargs.get('reference_id')