繁体   English   中英

django url-tag和装饰网址

[英]django url-tag and decorated urls

我正在写一个小博客应用程序,并希望通过title-name和id的组合来访问它的条目。

Expression:    ^blog/([\d\w\-_]+)\-(\d+)/$
Example URL:   localhost:8000/blog/django-is-awesome-231/

第一部分是通过将博客条目的标题全部转换为小写并将空格和特殊字符替换为-

我想知道如何从条目中反转这样的URL。

{% for entry in entries %}
  <li><a href="{% url 'blog.views.display', entry.title entry.id %}">{{ entry.title }}</a></li>
{% endfor %}

但它告诉我没有找到反向匹配。

谢谢,


我只是这样尝试:

def get_mangled_name(self):
    """ Returns the mangled name of the entry. """
    title = self.title.lower().replace(' ', '-')
    title = ''.join(filter(lambda x: x in string.letters, title))
    if title.endswith('-'):
        title = title[:1]
    return '%s-%d' % (title, self.id)


<li><a href="{% url 'blog.views.display' entry.get_mangled_name %}">{{ entry.title }}</a></li>

但它也没有用。

有一个slugify模板过滤器,将标题转换为slug。 所以,您可以编写模板代码,如:

{% url 'blog.views.display', entry.title|slugify entry.id %}

但是,每当你处理slug时,你的模型上应该有一个slug字段来永久存储值。 至少,您应该接受César的建议,并在get_absolute_url执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM