我们是否可以向Django1.9中的modelformset\u工厂发送请求对象或关键字参数

2024-04-26 13:19:51 发布

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

我有以下观点

def application(request, uuid):
    application = get_object_or_404(LoanApplication, uuid=uuid)

    partners = FirmPartner.objects.filter(application=application)
    PartnerFormset = modelformset_factory(FirmPartner, form=FirmPartnerForm, can_delete=True, extra=1)

    if request.method == 'POST':
        .........
        ..........

但是我想让FirmPartnerForm中的一些字段在表单的init方法中动态地成为必需的,方法是使用我们传入的请求或关键字参数中的一些值,比如modelformset_factory(......application=application)?你知道吗

那么,是否可以将请求对象或任何关键字参数发送到modelformset\u工厂?如下所示

modelformset_factory(FirmPartner, form=FirmPartnerForm, can_delete=True, extra=1, request=request, application=application) ?

编辑

现在我升级到django1.9.9,下面是我的代码

from .forms import FirmPartnerForm

PartnerFormset = modelformset_factory(FirmPartner, form=FirmPartnerForm, can_delete=True, extra=1,
                       form_kwargs={'request': request, 'application': application})

表单.py

class FirmPartnerForm(forms.ModelForm):
    class Meta:
        model = FirmPartner
        exclude = ['application']

    def __init__(self, *args, **kwargs):
        super(FirmPartnerForm, self).__init__(*args, **kwargs)
        if kwargs.get('application', None):
            application = kwargs.get('application

            .....................
            .....................

错误回溯

  File "/Users/name/projects/project_name/applications/views.py", line 462, in application_management
    form_kwargs={'request': request, 'application': application})
TypeError: modelformset_factory() got an unexpected keyword argument 'form_kwargs'

所以在1.9中添加了Daniel所说的表单\u kwargs之后,我升级到了1.9.9,仍然得到了上面的错误?你知道吗


Tags: formtrue表单getuuidapplicationrequestfactory
1条回答
网友
1楼 · 发布于 2024-04-26 13:19:51

^{}参数就是您所需要的。你知道吗

modelformset_factory(FirmPartner, form=FirmPartnerForm, can_delete=True, extra=1,
                     form_kwargs={'request': request, 'application': application})

相关问题 更多 >