Django管理员忽略动态生成的表单字段

时间:2020-07-15 21:52:36

标签: django django-admin dynamic-forms

我正在尝试让django管理员显示具有动态生成字段的模型表单。我这样设置表单:

class EulogyTextForm(f.ModelForm):
    class Meta:
        model = EulogyText
        fields = '__all__'

    def __init__(self, *args, **kwargs):
        super(EulogyTextForm, self).__init__(*args, **kwargs)

        for i in range(len(settings.MULTITEXT_LANGUAGES)):
            field_name = 'language%s' % (i, )
            self.base_fields[field_name] = f.CharField(disabled=True, initial=settings.MULTITEXT_CHOICES[i][0])
            field_name += '_text'
            self.base_fields[field_name] = f.CharField()

我已经这样设置了管理员:

class EulogyTextAdmin(admin.ModelAdmin):
    model = EulogyText
    exclude = []
    form = EulogyTextForm

但是,Django管理员不会显示我添加的字段。我创建了一个TestView来显示表单。在测试视图中,窗体正确显示并添加了字段。为什么Djang管理员会忽略其他字段?

1 个答案:

答案 0 :(得分:0)

尝试在fields选项中明确列出表单字段

class EulogyTextForm(f.ModelForm):
    class Meta:
        model = EulogyText
        fields=[field1, field2, generated_fields...]