从0到1搭建个人网站 七-在 django 模板中使用自定义属性
优质
小牛编辑
126浏览
2023-12-01
展示简单的文章标题
首先我们来把这样的标题《教你成为全栈工程师(Full Stack Developer) 十九-文章内容展示页面设计》去掉前面tag部分变成《十九-文章内容展示页面设计》,直接在模板里操作会比较复杂,这时我们来自定义一个get_simple_title的属性,修改web/models.py,为BlogPost类添加如下方法
def get_simple_title(self):
return self.title.replace(self.tags.first().name, '')
这时我们修改web/templates/web/blog_show.html如下:
{% for blog_post in tag.get_latest_blogpost.all %}
{% if forloop.counter < 5 %}
<a href="{% url 'blog_show' %}?blogId={{ blog_post.id }}">
{{ blog_post.get_simple_title }}
</a>
<br />
{% endif %}
{% endfor %}
这样便直接展示了去掉标签后的标题了
获取最新n篇文章
在首页分标签栏目中,我们要展示最新发布的5篇文章,这同样难以在模板中实现,因此我们自定义get_latest_blogpost,在web/models.py的Tag类中添加:
def get_latest_blogpost(self, count=5):
? ? return self.blogpost_set.order_by('id').reverse()[0:count]
使用方法同上面文章标题用法
总结
本节简答介绍了自定义属性的使用场景和方法,这是在模板中遇到困难时第一个想到的方法,简便易行,下一节我们来介绍丰富的编辑器ckeditor的集成