#django #django-models #django-admin
#django #django-модели #django-admin
Вопрос:
Я хочу использовать in_.forms.INStateSelect в admin.
какие файлы я должен добавить в модель? и как я могу сделать так, чтобы показать виджет в admin?
Редактировать
Я пытаюсь это
from django.contrib.localflavor.in_.forms import INStateSelect
state = INStateSelect()
Спасибо!
Ответ №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