Форум сайта python.su
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)
Офлайн
Немного не в тему вопрос но все же, как сделаь обратное действие ?
Офлайн