django1.8和jinja2配合,url标签怎么传参数?

django
{% url 'get_rating' subject.id 1 %}没问题

jinja2
{{ url('get_rating', subject.id, 1) }} 报错

阅读 4.6k
1 个回答

这个问题刚好碰到

如果是按照标准教程配置的,有一段设置环境便利的文本

def environment(**options):
    env = Environment(**options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url': reverse,
    })
    return env

换句话说,url实际上是用reverse函数实现的。
reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)
正确的写法不知道是什么
我碰到一个需要传入参数的url,发现既不能直接传入参数,参数值必须是可迭代对象元组,列表
下面一个例子,传入翻页的页码,比如传入第二页,需要用args = (2,),而不是直接的2,或者args = 2都不行。下面的这种就可以

{{ url("blogs:page",args = (number,) }}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题