2013-02-17 26 views
0

我有一個泛型類視圖定義爲:倒車泛型類的觀點URL GET

class ItemDetailView(DetailView): 
    model   = Item 
    template_name = "item_detail.html" 

與其相應的URL模式

('^/item/(?P<pk>\d+)/$', ItemDetailView.as_view(), name="item-detail"), 

我想用這樣的事情在我模板

<form method="GET" action="{% url item-detail %}"> 
    <input type="text" name="pk"> 
</form> 

顯然,{% url %}失敗,因爲item-detail預計pk作爲參數。有沒有打電話ItemDetailView而無需使用如下?:

def get_item_detail(request): 
    return reverse('item-detail', kwargs={'pk': request.GET['pk']}) 

回答

1
的一個助手視圖

模板改成這樣的任何方式:

{% load url from future %} 
<form method="GET" action="{% url 'item-detail' pk=item.pk %}"> 
    <input type="text" name="pk"> 
</form> 

這裏是docs這一點。

+0

我可能沒有正確解釋我的問題。根據你的回答,我在尋找的是使用''的GET值作爲'item-detail'視圖的參數。 'item.pk'不在我的模板的上下文中,所以我不能使用它。謝謝! – jjuanda 2013-02-18 10:02:05

+0

上下文的整個目的是將變量傳遞給模板。如果你需要從'request.GET'傳遞一些內容到上下文,你可以修改'get_context_data'方法。 – miki725 2013-02-18 15:39:33