formularios - Cómo ocultar un campo de clave principal en una forma de Django
post django (2)
podrías especificar su widget como un campo oculto
Preferiría que mi campo de clave principal no estuviera visible en mi página de edición. Si lo hago un AutoField, no se representa en el formulario HTML. Pero el valor de la clave primaria tampoco está en mis datos POST. ¿Hay una manera simple de presentar AutoField como un campo oculto?
Si no tiene la intención de que su usuario pueda cambiar algo en un formulario, entonces debe colocarlo en la URL o en algún otro contexto. Te estás abriendo a problemas de seguridad (o al menos casos de uso extra) de lo contrario.
En urls.py:
(r''^edit/?P<my_id>[/d]+)/$'', views.edit),
y en view.py:
from django.shortcuts import render_to_response, get_object_or_404
from models import MyModel
def edit(request, my_id):
obj = get_object_or_404(MyModel, id=my_id)
if request.POST:
form = MyForm(request.POST, instance=obj)
if form.is_valid():
form.save()
#
# do other stuff....
#
else:
form = MyForm(instance=obj)
return render_to_response(template_name, {
"form": form
}, context_instance=RequestContext(request))