主キーフィールドが編集ページに表示されないようにしたいと思います。AutoFieldにすると、HTMLフォームでレンダリングされません。しかし、主キーの値は私のPOSTデータにもありません。AutoFieldを非表示フィールドとしてレンダリングする簡単な方法はありますか?
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 に答える