-
Была у меня форма ModelForm и все работало. Потом я перенес одно из полей модели (address) в отдельную таблицу, связанную через OneToOneField. Теперь никак не могу заставить форму работать. Мне нужно чтобы это поле можно было редактировать как прежде, но обновлялась связанная таблица.
Код:
class AddCarWashForm(forms.ModelForm): address = forms.CharField(u'Адрес', help_text=u"например: Киев, ул. Эжена Потье, 1") class Meta: model = CarWash fields = ('name', 'phone', 'description', 'type')Выдает непонятный TypeError 'str' object is not callable. Трейсбека нет:
Traceback: File "/var/lib/python-support/python2.6/django/core/handlers/base.py" in get_response 86. response = callback(request, *callback_args, **callback_kwargs)WTF? Можно ли заставить ModelForm работать или проще переписать через обычную форму?
-
address = forms.CharField(u'Адрес', help_text=u"например: Киев, ул. Эжена Потье, 1")
А вот это раньше работало? У
forms.CharFieldпервый параметр -max_length, а неlabel... -
Кстати, если поле формы address всё равно создаётся из поля модели, то лучше его не полностью вручную переписывать (включая тип, max_length и прочее), а таки создавать автоматически:
def model_field(model, fieldname, **kwargs): return model._meta.get_field(fieldname).formfield(**kwargs) class AddCarWashForm(forms.ModelForm): address = model_field(Address, 'address', help_text=u"например: Киев, ул. Эжена Потье, 1") class Meta: model = CarWash fields = ('name', 'phone', 'description', 'type')(model_field введена только для того, чтобы сэкономить на буквах)
-
О, спасибо за хинт насчет model_field, запомню.
Для этого случая думаю писать вручную форму, без ModelForm
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


