Не удается добавить поле в 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',).