Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2008 22:07:49

smal
От:
Зарегистрирован: 2008-10-21
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое создание поля в ModelForm

Lolka
Да, громандное спасибо, smal, Daevaorn. Теперь получилось. Не догадался использовать словарь self.fields, создавал поля непосредственно, отчего они уже не работали.
Но, пришлось несколько изменить код, т.к. ModelForm принимает еще разное, как то request.POST при отправке формы.
Таким образом (в меру своего понимания процесса, может и наворотил лишнего):
...
class TestForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
# city придет в kwargs при первой инициализации и надо будет его вытащить,
# в противном случае ModelForm'овский __init__ ругнется на неизвестный аргумент
if 'city' in kwargs:
self.city = kwargs.pop('city')
else:
# один раз инициализированному полю уже не понадобится city, так что все будет хорошо и после request.POST
# даже в таком случае
self.city = None
super(TestForm, self).__init__(*args, **kwargs)
...
можна і так, але можна використовувати і так :
testform = TestForm(City.objects.get(pk = some_city_id), request.POST)
(для попереднього варіанту форми)



Отредактировано (Окт. 22, 2008 11:29:05)

Офлайн

#2 Окт. 26, 2008 11:51:18

Алекс
От:
Зарегистрирован: 2008-09-27
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое создание поля в ModelForm

Немного не в тему вопрос но все же, как сделаь обратное действие ?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version