簡體   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