django删除模板中的硬编码URL

时间:2018-07-01 11:53:09

标签: python django url django-urls

我知道我可以在模板文件中包含此代码,该代码将返回链接列表

{% for q in all %}
    <ul>
        <li><a href={% url 'detail' q.id %}>{{ q.question_text }}</a></li>
    </ul>
{% endfor %}

现在django将在我的应用目录的'detail'文件中搜索名称urls.py,并将自动为该参数提供q.id的值。但是,如果我的网址包含多个变量,该怎么办?因此,在这里我只能给出一个参数,即q.id。但是,如果我想提出多个论点怎么办。 希望我清楚

1 个答案:

答案 0 :(得分:2)

好吧,您可以看到urls.py是URL映射视图功能(和基于类的视图)的声明。网址可以具有任意数量的参数。

例如,如果我们具有以下URL:

    url(r'^detail/(?P<year>(\d+))/(?P<name>(\w+))/$', views.detail),

我们可以将此网址视为某种虚函数,其参数如下:

def some_url(year, name):
    # ...
    pass

因此我们可以使用未命名参数

构造此URL。
{% url 'detail' 1981 q.name %}

或带有 named 参数的

{% url 'detail' name=q.name year=1981 %}