widgets formularios form fields avanzados django django-forms

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))