Джанго "местный колорит" выбрать виджет в админке - PullRequest
0 голосов
/ 22 октября 2011

Я хочу использовать in_.forms.INStateSelect для администратора.

что нужно добавить в модель? и как я могу сделать так, чтобы показывать виджет в админке?

Редактировать

Я пытаюсь это

from django.contrib.localflavor.in_.forms import INStateSelect
state = INStateSelect()

Спасибо!

1 Ответ

1 голос
/ 22 октября 2011

Где вы пытаетесь этот код?Виджет должен быть прикреплен к полю ...

Вот один из способов, которым вы могли бы сделать это:

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
...