Не удается добавить поле в ModelForm в __init__

У меня проблема с ModelForm. Поле "test1" отображается, а "test2" - нет. Игра с base_fields не помогла.

# models.py
Класс страны (модели. Модель):
    имя = CharField(max_length=100)

# admin.py
Класс CountryAdminForm(ModelForm):
    test1 = forms.CharField('test1')

    def __init__(self, *args, **kwargs):
        super(CountryAdminForm, self).__init__(*args, **kwargs)
        self.fields['test2'] = forms.CharField('test2')

    Мета класса:
        модель = страна

Класс CountryAdmin(admin.ModelAdmin):
    form = CountryAdminForm

admin.site.register(Страна, Страна Admin)

Спасибо.

2 ответа

Решено!

Класс CountryAdminForm(ModelForm):
    test1 = forms.CharField('test1')

    def __init__(self, *args, **kwargs):
        super(CountryAdminForm, self).__init__(*args, **kwargs)
        self.fields['test2'] = forms.CharField('test2')
        self.Meta.fields.append('test2')

    Мета класса:
        модель = страна
        fields = ['name', 'test1',]

...

Я не мог использовать self.Meta.fields.append в Django 1.4, потому что рассматриваемые поля являются кортежем. Например , вместо этого вы должны объединить с self.Meta.fields += ('another_field',).

Другие вопросы по тегам