【问题标题】:Flexible regular expression url, Django灵活的正则表达式 url,Django
【发布时间】:2011-09-13 01:05:47
【问题描述】:

我尝试做灵活的网址。我是这样做的

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() 为关键字参数“模板”获取多个值

这是什么意思?我该如何解决?

在 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 

【问题讨论】:

    标签: regex django django-urls


    【解决方案1】:

    我不明白那个&符号在那里做什么,但没关系。

    我怀疑问题在于您没有在 URL 中使用命名组。所以捕获的字符串作为第一个位置参数发送到视图函数,实际上是template,所以它与模板关键字arg冲突。

    使用命名组 - &amp;(?P&lt;my_arg&gt;\w*)?/?$ - 它应该可以工作。

    【讨论】:

    • 与“/admin”的符号与此正则表达式不匹配。
    • 进一步开发应用程序的一种或另一种方法是正则表达式仍然必须是一个命名组。谢谢。
    猜你喜欢
    • 2011-03-22
    • 2013-07-26
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多