Найти - Пользователи
Полная версия: form.save()
Начало » Django » form.save()
1
vak
Не работает 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()?
d1ffuz0r
я делал так
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})
хотя думаю правильней наверно это вынести в форму
vak
d1ffuz0r, id записи где взять? В форме то его нет!
d1ffuz0r
так передай туда же, как я передавал данные в поля name и text, вроде бы нужно засунуть в initial = {}, домой вечером приду посмотрю
vak
d1ffuz0r
так передай туда же, как я передавал данные в поля name и text, вроде бы нужно засунуть в initial = {}, домой вечером приду посмотрю
Хотелось бы form.save() использовать. Так туда так тупо и передать id?
form.id = 1
form.save()
Так?
ziro
Подскажите как id записи передать в form.save()
Если класс формы отнаследован от ModelForm, то у него есть агрумент конструктора instance, которому надо скармливать экземпляр редактируемого объекта. Посмотрите в самом первом примере кода здесь - https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform
vak
Спасибо, за помощь. Получилось
form.id = rec_id
form.save()
Через instance возможно было -бы правильнее, но через form.id проще.
gruy
Что может быть проще:
obj = Model.objects.get(pk=1)
form = Form(instance=obj)
если Form основана на ModelForm?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB