【问题标题】:Django: URL with RegEx for query paramsDjango:带有正则表达式的 URL 用于查询参数
【发布时间】:2020-03-19 12:36:47
【问题描述】:

我在将 RegEx 与 Django-Urls 一起使用时遇到了困难。

给定一个字符串和两个整数s, i1, i2,我想创建以下网址:

/s/?pagem=i1&pagec=i2

然后,从相关模板内部,我想创建一个 href,重定向到给定 s, i1, i2 的页面。我该怎么做?

urls.py

re_path(r'^<str:s>/(?P<pagem>[0-9]&<pagec>[0-9])/$', view, name='chat-explicit-pag')

模板

<a href="{% url 'chat-explicit-pag' s i1 i2 %}"

给出了

Reverse for 'chat-explicit-pag' with arguments '('39_41', 1, 1)' not
found. 1 pattern(s) tried: ['chat/<str:s>/(?P<i1>[0-9]&<i2>[0-9])/$'].

感谢您的帮助!

【问题讨论】:

  • Django URL 处理程序不处理查询字符串(? 之后的位)。如果您想使用/s/?pagem=i1&amp;pagec=i2,请将 URL 模式更改为path('&lt;str:s&gt;/', ...),并在模板中执行:{% url 'chat-explicit-pag' s %}?pagem=i1&amp;pagec=i2
  • 作为一个单独的问题,re_path(r'^&lt;str:s&gt;, ...)path()re_path() 样式的混合。选择一种方法,您不能将两者混合在一个模式中。

标签: python django python-3.x django-templates


【解决方案1】:

显然 djangos URL-handler 无法处理查询字符串,我必须执行以下操作: {% url 'chat-explicit-pag' s %}?pagem=i1&amp;pagec=i2.

见上面@Alasdair 的评论

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2012-02-21
    • 2011-03-15
    • 1970-01-01
    • 2011-07-20
    相关资源
    最近更新 更多