基于<form> GET </form>反转泛型类视图URL

时间:2013-02-17 15:24:23

标签: django

我将泛型类视图定义为:

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

及其对应的网址格式

('^/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 个答案:

答案 0 :(得分:1)

将模板更改为:

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

以下是docs