Ulf*_*orm 1 django django-templates django-models
我有一个博客应用程序,其中包含最新的帖子标题列表.现在,列表项应链接到其内容.我的问题(类似的帖子)是,如果标题有一些空格我得到一个带空格的网址,如果我使用:
<a href="{{ i.id }}/{{ i.title }}">{{ i.title }}
Run Code Online (Sandbox Code Playgroud)
在我的模板中.我可以使用额外的URLField,但我不想手动创建友好的URL标题.这样做的常见方法是什么?
我的models.py
class Post(models.Model):
title = models.CharField(max_length=100)
...
def __unicode__(self):
return self.title
Run Code Online (Sandbox Code Playgroud)
我的view.py
def recentlyBlogged(request):
lastPosts = Post.objects.filter(publication__gt = datetime.now() - timedelta(days=30))
return render(request, "blog/blog.html", {'Posts': lastPosts})
Run Code Online (Sandbox Code Playgroud)
我的模板
{% for i in Posts %}
<ul id="latestPostsList">
<li class="latestPostsListItem"><a href="{{ i.id }}/{{ i.title }}">{{ i }}</a></li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
你正在寻找一个slug.
试试这个
from django.template.defaultfilters import slugify
class Post(models.Model):
title = models.CharField(max_length=100)
...
def __unicode__(self):
return self.title
def get_absolute_url(self):
return reverse('post_url', args=(slugify(self.title), ))
Run Code Online (Sandbox Code Playgroud)
在模板中
<a href="{{ i.get_absolute_url }}">{{ i.title }}</a>
Run Code Online (Sandbox Code Playgroud)
您可能还需要urls.py相应地进行修改
url(r'post_url/(?P<slug>[\w-]+)/', view_name, name="post_url")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
472 次 |
| 最近记录: |