Если вы не хотите, чтобы ваш пользователь мог что-то изменить в форме, вам следует вместо этого поместить это в 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))