2011-09-12 14 views
0

私は、場所を作成、編集、または表示できるアプリを作成しています。私は場所を編集したり、表示するとテンプレートからDjangoのビューに脆弱なargsを渡すには?

、私は例えば、URL throught 'ID' フィールドを渡す:

/場所/場所/ 1

/場所/場所/ 2 ...

私は私の場所を編集しようとすると:

place_detail.htmlを

<a href="{% url places_edit_place place.id %}">Edit</a> 

'場所' varはフォームです。

url.py

urlpatterns = patterns('', 
    url(r'^edit_place/(?P<id_place>\w+)/$', 
     views.edit_place, 
     name='places_edit_place'), 
    ) 

view.py

def edit_place(request, id_place, template_name='places/edit_place.html'): 

私は 'id_place' 引数で場所オブジェクトの 'ID' フィールドを受け取ります。しかし、 'id' arg(/ places/edit_place/1〜/ places/edit_place/2)のurlを変更すると、Webページが2番目の場所に移動し、編集者がこのargを変更することができます。

私はこのプライベートな 'id' argをテンプレートからビューなしでユーザーに送信することはできません。

答えて

0

しないでください。

ユーザーが編集できる場所を判断するルールがアプリにある場合は、ビジネスロジックを実装して、ユーザーがその場所を編集できないようにする必要があります。あなたはDjangoのauthorization decoratorsを使って、ユーザがアクセスすべきでないものにアクセスできないようにすることができます。

関連する問題