Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 26, 2011 06:32:13

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

form.save()

Не работает form.save() на обновление записи. Идет добавление, а записи в уже созданную нет. Попробовал прописать в форме id поле как hidden, но это не сработало: уже есть такое id hidden поле :

<form action="" method="POST">
<div style='display:none;'>
<input type='hidden' id='csrfmiddlewaretoken' name='csrfmiddlewaretoken' value='f61838928114c0749d3f9bb5daa1f0ed' /></div>

<input type="hidden" name="id" value="30" id="id_id" />
Подскажите как id записи передать в form.save()?



Офлайн

#2 Сен. 26, 2011 08:52:09

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

form.save()

я делал так

data = Model.get_by_name(name)
if request.POST:
edit_form = EditForm(request.POST)
if edit_form.is_valid():
data.name = edit_form.cleaned_data['name']
data.text = edit_form.cleaned_data['text']
data.save()
else:
edit_form = EditForm({'name': data.name, 'text': data.text})
хотя думаю правильней наверно это вынести в форму

Отредактировано (Сен. 26, 2011 08:54:19)

Офлайн

#3 Сен. 26, 2011 09:32:48

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

form.save()

d1ffuz0r, id записи где взять? В форме то его нет!



Офлайн

#4 Сен. 26, 2011 09:40:34

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

form.save()

так передай туда же, как я передавал данные в поля name и text, вроде бы нужно засунуть в initial = {}, домой вечером приду посмотрю

Офлайн

#5 Сен. 26, 2011 10:19:28

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

form.save()

d1ffuz0r
так передай туда же, как я передавал данные в поля name и text, вроде бы нужно засунуть в initial = {}, домой вечером приду посмотрю
Хотелось бы form.save() использовать. Так туда так тупо и передать id?
form.id = 1
form.save()
Так?



Офлайн

#6 Сен. 26, 2011 12:41:46

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

form.save()

Подскажите как id записи передать в form.save()
Если класс формы отнаследован от ModelForm, то у него есть агрумент конструктора instance, которому надо скармливать экземпляр редактируемого объекта. Посмотрите в самом первом примере кода здесь - https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform



Офлайн

#7 Сен. 27, 2011 08:22:19

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

form.save()

Спасибо, за помощь. Получилось

form.id = rec_id
form.save()
Через instance возможно было -бы правильнее, но через form.id проще.



Офлайн

#8 Сен. 27, 2011 08:46:41

gruy
От:
Зарегистрирован: 2010-02-22
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

form.save()

Что может быть проще:

obj = Model.objects.get(pk=1)
form = Form(instance=obj)
если Form основана на ModelForm?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version