【发布时间】: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&pagec=i2,请将 URL 模式更改为path('<str:s>/', ...),并在模板中执行:{% url 'chat-explicit-pag' s %}?pagem=i1&pagec=i2。 -
作为一个单独的问题,
re_path(r'^<str:s>, ...)是path()和re_path()样式的混合。选择一种方法,您不能将两者混合在一个模式中。
标签: python django python-3.x django-templates