Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » ModelForm, как обновить запись связанную с ней. [RSS Feed]

#1 Фев. 10, 2012 07:10:04

necros
От:
Зарегистрирован: 2012-02-10
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelForm, как обновить запись связанную с ней.

view.py

def edit (request,id):
errors = []
persona = Persona.objects.get(id=id)
forma = PersonaForm(instance=persona)
if request.method == 'POST':
post = request.POST.copy()
forma = PersonaForm(post)
if forma.is_valid():
forma.save()
return HttpResponseRedirect('/narko/spisok')
return render_to_response('edit.html',{'persona':persona,'forma':forma})
edit.html
<html>
<head>
<title>Редактирование</title>
</head>
<body>
<form method="post">

{{ forma.as_p }}

<input type="submit" />
</form>
</body>
</html>
Вот такой простой код, чтобы отредактировать запись в базе, но после сохранения он создает новую запись, а не изменяет старую. Подскажите как можно это изменить.



Офлайн

#2 Фев. 10, 2012 08:49:38

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

ModelForm, как обновить запись связанную с ней.

def edit(request, id):
errors = []
persona = Persona.objects.get(id=id)
if request.POST:
forma = PersonaForm(request.POST)
if forma.is_valid():
persona.field = forma.cleaned_data['field']
persona.save()
return HttpResponseRedirect('/narko/spisok/')
else:
forma = PersonaForm(initial=persona)
return render_to_response('edit.html', {'persona': persona,
'forma': forma})

Офлайн

#3 Фев. 10, 2012 10:20:02

necros
От:
Зарегистрирован: 2012-02-10
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelForm, как обновить запись связанную с ней.

Большое спасибо. Помогло



Офлайн

#4 Фев. 10, 2012 12:39:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ModelForm, как обновить запись связанную с ней.

Постойте, а почему не так???

def edit (request,id):
errors = []
persona = Persona.objects.get(id=id)

if request.method == 'POST':

forma = PersonaForm(request.POST, instance=persona)
if forma.is_valid():
forma.save()
return HttpResponseRedirect('/narko/spisok')
else:
return HttpResponseRedirect(".")

forma = PersonaForm(instance=persona)
return render_to_response('edit.html',{'persona':persona,'forma':forma})



Офлайн

#5 Фев. 10, 2012 13:36:02

necros
От:
Зарегистрирован: 2012-02-10
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelForm, как обновить запись связанную с ней.

И так работает тоже. Большое спасибо :-)



Офлайн

  • Начало
  • » Django
  • » ModelForm, как обновить запись связанную с ней.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version