python - valid - form fields django template
Obtenga la clave principal después de guardar un ModelForm en Django (2)
El método save ModelForm devuelve el objeto guardado.
Prueba esto:
def contact_create(request):
if request.method == ''POST'':
form = ContactForm(request.POST)
if form.is_valid():
new_contact = form.save()
return HttpResponseRedirect(reverse(contact_details, args=(new_contact.pk,)))
else:
form = ContactForm()
¿Cómo obtengo la clave principal después de guardar un ModelForm? Después de que el formulario ha sido validado y guardado, me gustaría redirigir al usuario a la vista contact_details que requiere la clave principal del contacto.
def contact_create(request):
if request.method == ''POST'':
form = ContactForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse(contact_details, args=(form.pk,)))
else:
form = ContactForm()
En el caso donde ha configurado form.save (commit = False) porque quiere modificar los datos y tiene una relación de muchos a muchos, la respuesta es un poco diferente:
def contact_create(request):
if request.method == ''POST'':
form = ContactForm(request.POST)
if form.is_valid():
new_contact = form.save(commit=False)
new_contact.data1 = "gets modified"
new_contact.save()
form.save_m2m()
return HttpResponseRedirect(reverse(contact_details, args=(new_contact.pk,)))
else:
form = ContactFrom()
https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#the-save-method