私は小さなブログアプリを書いており、そのエントリにタイトル名と 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>
しかし、それもうまくいきませんでした。