如何解决灵活的正则表达式网址Django
| 我尝试做灵活的网址。我是这样做的url(r\'^(&\\w*)?/?$\',direct_to_template,{\'template\': \'basic.djhtml\'}),
get_absolute_url
def get_absolute_url(self):
return \"/&%s\" % self.human_redble_url
问题是一个错误:
direct_to_template()为关键字参数“ \ template \”获得了多个值
这是什么意思?我该如何解决?
在Python交互式解释器中,此正则表达式有效
>>> import re
>>> reg = re.compile(\'^(&\\w*)?/?$\')
>>> result = reg.match(\'&post1\')
>>> result
<_sre.SRE_Match object at 0xb77098a0>
>>> wrong = reg.match(\'aergsr\')
>>> print wrong
None
>>> reg.match(\'post1\')
>>> print reg.match(\'post1\')
None
>>> print reg.match(\'&post1/\')
<_sre.SRE_Match object at 0xb77097a0>
>>> print reg.match(\'&post1:\')
None
解决方法
我不明白“&”号在那做什么,但没关系。
我怀疑问题是您没有在URL中使用命名组。因此,捕获的字符串将作为第一个位置参数(实际上是
template
)发送到视图函数,因此它与模板关键字arg冲突。
使用一个命名的组-&(?P<my_arg>\\w*)?/?$
-它应该起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。