【问题标题】:Django greedy characters missing in reverse urls反向网址中缺少 Django 贪婪字符
【发布时间】:2017-02-20 13:06:05
【问题描述】:

我正在尝试使用以下规则在 django 中映射 url

url(r'^(?P<permalink>[a-zA-Z0-9_-]*)/?$', views.page, name='page'),

这应该匹配类似的页面

  • site.com
  • site.com/super-awesome-page/

这可行,但是 url 模板标签提供的反向 url 缺少尾随 / 即“site.com/page”,这些确实被捕获了模式,但我希望我的链接正确显示在我的页面中我怎样才能得到这个正常工作。

我会预料到,因为斜杠是贪婪的,它应该包含在反向 url 中。

【问题讨论】:

    标签: django django-urls


    【解决方案1】:

    在您的正则表达式中,尾部斜杠是可选的,因此 django 不会为您生成反向 URL。

    最简单的解决方案可能是使尾部斜杠不可选。使用默认设置,django 会将非斜线版本重定向到斜线版本。最容易标准化。

    【讨论】:

    • 将其设为非可选会导致永久链接不匹配的示例(根页面)的 URL 变得丑陋。此外,虽然它是可选的,但我希望它包含在 ?贪婪吗?我希望它不会包含在非贪婪的反向 URL 中??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多