django url在模板中添加参数的正确方法

时间:2015-10-21 19:12:15

标签: python django django-templates django-urls

views.py

中的

class LaViewSet(viewsets.ModelViewSet):

    serializer_class = IlSerializer

    def get_queryset(self):
        ilfiltro = self.kwargs['miopar']
        return models.Pippo.objects.filter(pippo=ilfiltro)
url.py

url(r'^pippo/(?P<miopar>.+)', views.LaViewSet.as_view({'get': 'list'}), name="Serializzata"),

这是一个有效的网址:

http://127.0.0.1:8000/pippo/1

但如果我放入模板:

{% url '1' 'Serializzata' %};

{% url 'Serializzata'?1 %};

不断收到此错误:

  

TemplateSyntaxError:无法解析余数:'?1'来自   '' Serializzata '?1'

2 个答案:

答案 0 :(得分:3)

来自docs

  

<强>网址

     

返回绝对路径引用(不带域名的URL)   匹配给定视图和可选参数。任何特殊字符   在结果路径中将使用iri_to_uri()进行编码。

     

这是一种在不违反DRY原则的情况下输出链接的方法   必须在模板中对URL进行硬编码:

     

{% url 'some-url-name' v1 v2 %}

所以在你的情况下:

{% url 'Serializzata' 1 %}

答案 1 :(得分:1)

试试这个:

<a href="{% url 'Serializzata' 1 %}">