У меня есть ModelForm с динамически добавленным полем.Он перестал работать, когда я переключился с Django 1.2 на Django 1.3.Следующий код является минимальной версией, воссоздающей проблему.
class MyModel(models.Model):
rank = models.IntegerField()
def __unicode__(self):
return "{}".format(self.rank)
class MyModelAdminForm(forms.ModelForm):
#dummy = forms.NullBooleanField()
def __init__(self, *args, **kwargs):
super(MyModelAdminForm, self).__init__(*args, **kwargs)
self.fields['dummy'] = forms.BooleanField()
self.fields['dummy'].required = False
self.Meta.fields.append('dummy')
class Meta:
fields = ['rank']
Закомментированное объявление 'dummy' не требуется при работе под Django 1.2, все можно сделать динамически в init ().В Django 1.3 тот же код выдает ошибку:
FieldError: Unknown field(s) (dummy) specified for MyModel
, которую можно исправить, добавив закомментированное объявление.
Я не смог найти ничего в документах, предлагающих задом напереднесовместимое изменение, которое вызвало бы это.Кто-нибудь знает, что здесь происходит?