Django URL Regex - 要查看的模板值

时间:2015-01-20 21:32:21

标签: python regex django django-templates

我无法将模板index.html中的值传递给
我的观点(duplicates(request, title)

仅限于1.4.3版。

我认为这是我在 urls.py 文件中的正则表达式问题。

当前错误未找到页面(404)。

urls.py

from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
  url(r'^missions/$', 'app.views.index'),
  url(r'^missions/(?P<mission_id>\d+)/$', 'app.views.mission_overview'),
  url(r'^missions/duplicates/(?P<title>[A-Za-z0-9-\s\>]+)/$',
    'app.views.duplicates'),
)

我尝试将标题用作查询字符串,例如

url(r'^missions/duplicates/title(?P<title>[\s.\>])/$', ...)

index.html

{% if mt %}
  <!-- Title (string), Num (int), mission_id (list) -->
  {% for title, num, mission_id in mt%}
    {% if num > 1 %}
      <li><a href="missions/duplicates/{{ title|urlencode }}/">
        {{ title }}
      </a></li>
    {% else %}
      {% for mid in mission_id %}
        <li><a href="missions/{{mid}}/">{{title}}</a></li>
      {% endfor %}
    {% endif %}
  {% endfor %}
{% else %}
  <p>No Titles</p>
{% endif%}

我也试过

{{ request.GET.urlencode }}

{{% url app.views.duplicates title %}}

views.py 仅显示所需的输入

def duplicates(request, title):

我得到了Page not found错误或者duplicates()只需要2个参数(给定1个)。

主要目标是将title从模板转到视图duplicates

我有一些时髦的标题,比如...
01 Wall_01-_Store>
AB.Chicken.1 StoreY
TO.Test.0 StoreZ'
提前谢谢!

修改
Page not found Error

Duplicate needs 2 args error

1 个答案:

答案 0 :(得分:0)

尾部斜杠是这里的问题 - 页面未找到错误显示url模式3以斜杠结尾,但当前URL不以斜杠结尾。我怀疑在复制和粘贴的各个位之间有一些代码更改,因为模板DOES中的a href=行有一个斜杠。

TypeError是由命名组不匹配的事实引起的 - 它至少需要一个字符,因为正则表达式以+结束,而不是*。为什么这里不需要两个尾部斜杠也可以归结为你已粘贴的位之间的代码更改......