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

Url pattern for alphanumeric(slug) string in django

我正在努力使这个 url 模式起作用,但我没有得到 anywhere.I get a page not found error.The url 在我的 url bar 是 http://127.0.0.1:8000/tags/?Pythonif I select python slug,但它不使用定义的 url。 我想要做的是,打开一个包含 slug 相关信息的新模板。 这是我的看法:

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

这是我的 url:

 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

但到目前为止没有任何效果。我想打开显示 selected slug 的标签模板。

您必须在 url 中设置一个类似下面的名称:

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

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

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