How to hide primary key field in Django form

I would prefer that my main key field is not visible on my edit page. If I do this AutoField, it does not appear in the HTML form. But then the primary key value is not included in my POST data. Is there an easy way to render AutoField as a hidden field?

+5
source share
2 answers

you can specify widget as a hidden field

+6
source

, - , URL- - . (, , ).

urls.py:

(r'^edit/?P<my_id>[\d]+)/$', views.edit),

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

All Articles