我想在管理员中使用in_.forms.INStateSelect。
我应该在模型中添加哪些文件?如何让它在管理员中显示一个小部件?
修改
我正在尝试
from django.contrib.localflavor.in_.forms import INStateSelect
state = INStateSelect()
谢谢!
答案 0 :(得分:1)
你在哪里尝试这段代码?小部件需要附加到字段...
这是你可以做到的一种方式:
class MyAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
if db_field.name == 'my_state_field':
kwargs['widget'] = INStateSelect()
return super(MyAdmin, self).formfield_for_dbfield(db_field, **kwargs)
另一种方法是覆盖管理表单并使用INStateField
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['myfield'] = INStateField()
class MyAdmin(admin.ModelAdmin):
form = MyForm