Django «local flavor» выберите виджет в admin

#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