如何从Djang中的另一个窗体获取窗体中的默认值

2024-04-26 22:06:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个表单,一个是CreateOrderForm,一个是CreateManifestForm。提交CreateOrderForm将呈现CreateManifestForm。你知道吗

CreateOrderForm“reference”中有一个输入是用户输入的,但应默认为CreateManifestForm的“reference”字段。我似乎不知道如何把这个值从一种形式传递到另一种形式

你知道吗表单.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)

如您所见,每个表单中都有一个字段用于“reference”,我希望用户在CreateOrderForm中输入该字段,并在创建清单时将该值传递给default。如有任何帮助,我们将不胜感激。你知道吗


Tags: 用户formadd表单returnifrequestpost
1条回答
网友
1楼 · 发布于 2024-04-26 22:06:02

您可以尝试以下解决方案: 使add_manifestURL具有如下参数

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')

相关问题 更多 >