管理内联中CharField的动态选择

时间:2017-06-16 16:03:55

标签: python django inline-formset modelchoicefield

我有一个Charfield的模型,其中没有设置任何选项。现在在管理面板中,在我显示此模型的内联管理员中,我想提供一个可以填写的下拉列表(需要动态获取选项的位置,并且显示与我要填充的值不同)在该领域)。如何在不改变模型的情况下实现这一目标?

这是我尝试过的(不是动态的):

class MyModelInline(TabularInline):
    model = Mapping
    def formfield_for_dbfield(self, db_field, **kwargs):
        if db_field.name == 'status':
            kwargs['choices'] = (
                ('accepted', 'Accepted'),
                ('denied', 'Denied'),
            )
            return super(MyModelInline, self).formfield_for_choice_field(db_field, **kwargs)
        return super(MyModelInline, self).formfield_for_dbfield(db_field, **kwargs)

然而,当我打开我的模型时,我收到错误__init__() got an unexpected keyword argument 'choices'。我查看了堆栈跟踪,发现这是它所说的__init__

<path>/django/forms/fields.py in __init__
       214         super(CharField, self).__init__(*args, **kwargs)

我应该改变什么来使这项工作?我使用的是Python 3.5和Django 1.8.14。

0 个答案:

没有答案