在初始化外部为自定义小部件定义ModelForm Queryset__

2024-10-03 02:46:37 发布

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

背景:我一直致力于在ModelForm中为外键集成管理类型“AddAnother”弹出式功能(参见this tutorial)。我已经让一切正常工作,我只是不知道我的代码是否简洁/干巴巴的,因为它可以。你知道吗

这是我的模型(捐赠者属于池,池由公司管理):

class DonorCreateForm(forms.ModelForm):

    class Meta:
        model = Donor
        widgets = {
            'pool': CustomRelatedFieldWidgetWrapper(
                Select(), reverse_lazy('company:pool-create'), True)
        }

    def __init__(self, *args, **kwargs):
        super(DonorCreateForm, self).__init__(*args, **kwargs)
        self.fields['pool'].queryset = Pool.objects.all()

我的问题是:有没有一种方法可以将queryset分配给__init__之外的自定义小部件,而不重写字段?This SO post是通过重写字段来实现的,但是模型字段的帮助文本没有使用这种方法显示。谢谢!你知道吗


Tags: 方法模型selfinitargskwargs外键class