我希望我的主键字段在我的编辑页面中不可见。如果我将其设为 AutoField,则不会以 HTML 表单呈现。但是主键值也不在我的 POST 数据中。有没有一种简单的方法可以将 AutoField 呈现为隐藏字段?
Fred Larson
问问题
6499 次
2 回答
9
如果您不希望您的用户能够更改表单上的某些内容,那么您应该将其放置在 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))
于 2009-01-09T22:47:51.620 回答
6
您可以将其小部件指定为隐藏字段
于 2009-01-09T18:17:07.720 回答