__initüuu()为inlineformset_factory获取了一个意外的关键字参数“instance”,该参数具有自定义的formset

2024-09-30 08:37:35 发布

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

我得到了这个错误

__init__() got an unexpected keyword argument 'instance'

每当我尝试发送为inlineformset_factory指定formset参数的窗体时。 你知道为什么会这样吗?在

这是我的密码。抱歉,它没有评论我正在重写它,试图了解django是如何工作的

表格:

^{pr2}$

视图:

def receipt(request):
    purchase_formset = inlineformset_factory(
        Receipt,
        Purchase,
        form    = PurchaseForm,
        formset = PurchaseFormSet, <-- when I comment this everything works fine
    )

    if request.method == 'POST':
        receipt_form = ReceiptForm(
            request.POST,
            prefix = 'receipt'
        )
        if receipt_form.is_valid():
            receipt = receipt_form.save()
            receipt_form = ReceiptForm(
                instance = receipt,
                prefix   = 'receipt'
            )
            purchases_form = purchase_formset(
                request.POST,
                prefix   = 'purchase',
                instance = receipt <-- line that causes error according to traceback
            )
            if purchases_form.is_valid():
                purchases_form.save()
                return redirect('spendings:receipt')
    else:
        receipt_form = ReceiptForm(
            instance = Receipt(),
            prefix   = 'receipt'
        )
        purchases_form = purchase_formset(
            prefix = 'purchase'
        )

    context = {
        'receipt_form': receipt_form,
        'purchases_form': purchases_form
    }
    return render(request, 'spendings/receipt/index.html', context)

Tags: instanceformprefixifisrequestfactorypurchase
1条回答
网友
1楼 · 发布于 2024-09-30 08:37:35

如果使用的是inlineformset_factory,那么formset类应该继承BaseInlineFormSet。在

from django.forms import BaseInlineFormSet

class PurchaseFormSet(BaseInlineFormSet):
    ...

相关问题 更多 >

    热门问题