代码之家  ›  专栏  ›  技术社区  ›  Overdose

django url标记多个参数

  •  10
  • Overdose  · 技术社区  · 15 年前

    我有两个相似的密码。第一个按预期工作。

    urlpatterns = patterns('',
                           (r'^(?P<n1>\d)/test/', test),
                           (r'', test2),
    {% url testapp.views.test n1=5 %}
    

    但是添加第二个参数会使结果返回空字符串。

    urlpatterns = patterns('',
                               (r'^(?P<n1>\d)/test(?P<n2>\d)/', test),
                               (r'', test2),)
    
    
    {% url testapp.views.test n1=5, n2=2 %}
    

    视图签名:

    def test(request, n1, n2=1):
    
    3 回复  |  直到 15 年前
        1
  •  18
  •   StephenKing    8 年前

    尝试

    {% url testapp.views.test n1=5,n2=2 %}
    

    没有参数之间的空格

    更新: 截至 Django 1.9 (可能更早)正确的方法是省略逗号并使用空格分隔参数:

    {% url testapp.views.test n1=5 n2=2 %}
    
        2
  •  1
  •   Anshik    8 年前

    https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url

    从django 1.5警告不要忘记在函数路径或模式名周围加引号!

    {% url 'some-url-name' arg1=v1 arg2=v2 %}
    
        3
  •  0
  •   Jesse Lawson    7 年前

    下面是我使用这种技术的一个实际例子。也许这会有帮助:

    {% if stories %}
      <h2>Stories by @{{author.username}}</h2>
      <ul>
        {% for story in stories %}
          <li><a href="{% url 'reader:story' author.username story.slug %}">{{story.title}}</a></li>
        {% endfor %}
      </ul>
    {% else %}
      <p>@{{author.username}} hasn't published any stories yet.</p>
    {% endif %}