Где вы пытаетесь этот код?Виджет должен быть прикреплен к полю ...
Вот один из способов, которым вы могли бы сделать это:
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