2011-09-12 36 views
0

我正在創建一個可以創建,編輯或查看地點的應用程序。如何將模板中的脆弱參數傳遞給Django中的視圖?

當我編輯或查看的地方,我通過 'ID' 字段throught的URL,例如:

/地區/地點/ 1

/地區/地點/ 2 ...

當我嘗試編輯一個地方,我做的事:

place_detail.html

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

'place'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' ARG一個位置目標的 'ID' 字段。但是,如果我在URL中更改'id'arg(/ places/edit_place/1到/ places/edit_place/2),則網頁將轉到第二個地方進行編輯,用戶可以按照自己的意願更改此arg。

我怎麼能發送這個私人的'id'arg從模板到視圖沒有用戶不能看到它。

回答

0

不要。

如果您的應用程序有規則來確定用戶可以編輯哪些地方,則應該實施一些業務邏輯以確保用戶無法編輯該地點,即使他們碰巧訪問了URL也是如此。你可以使用Django的authorization decorators來確保用戶不能訪問他們不應該訪問的東西。

相關問題