1

我有一个模型,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。

4

0 回答 0