0

我有一个通用的类视图定义为:

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']})
4

1 回答 1

1

将您的模板更改为:

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

这是有关此的文档

于 2013-02-17T18:57:21.450 回答