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