django中字母数字(slug)字符串的url模式

时间:2015-07-04 02:46:22

标签: python regex django django-templates django-urls

我正在尝试使这个网址模式有效,但我没有得到任何地方。我找不到页面错误。如果我选​​择了python slug,我的网址栏中的网址是http://127.0.0.1:8000/tags/?Python,但它没有使用定义的URL。 我想要做的是,打开一个包含slug相关信息的新模板。 这是我的观点:

def tags(request,slug):
    verse = get_object_or_404(Tag, slug=slug)
    return render(request, 'tags.html',{'verse':verse})

这是我的网址:

 url(r'^tags/(?P<slug>[\W-]+)/$', views.tags),

这是我的模板:

Tagged under -  {% for i in verse.tags.all%}<a href='/tags'>{{ i }} | </a>{% endfor %}

我尝试在模板中传递查询字符串:

/tags/q={{i}}

我也尝试过使用:

{% url tags i.slug %}

(基于Slug Url Regex in Django

但到目前为止一切都没有效果。我想打开标签模板,显示所选的slug。

1 个答案:

答案 0 :(得分:7)

您必须在下面的url中设置名称:

url(r'^tags/(?P<slug>.+)/$', views.tags, name='tags'),

在模板中将您的url标记更改为:

{% url "tags" slug=i.slug %}