Django url标签多个参数
Posted
技术标签:
【中文标题】Django url标签多个参数【英文标题】:Django url tag multiple parameters 【发布时间】:2011-02-04 06:24:27 【问题描述】:我有两个相似的代码。第一个按预期工作。
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):
【问题讨论】:
【参考方案1】:试试
% url testapp.views.test n1=5,n2=2 %
参数之间没有空格
更新: 从Django 1.9(可能更早)开始,正确的方法是省略逗号并使用空格分隔参数:
% url testapp.views.test n1=5 n2=2 %
【讨论】:
在 Django Docs 中有没有关于这个特性的文档?【参考方案2】:这是我使用这种技术的一个实际示例。也许这会有所帮助:
% 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 %
【讨论】:
【参考方案3】:https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url
来自 Django 1.5 警告不要忘记在函数路径或模式名称周围加上引号!
% url 'some-url-name' arg1=v1 arg2=v2 %
【讨论】:
以上是关于Django url标签多个参数的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将关键字参数传递给 Django % url % 模板标签?关键字参数值应该来自 html 标签