如何在 Django 中从另一个表单中默认值



我有两个表单,一个是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')

最新更新