大家好,这是皮爷给大家带来的最新的学习Python能干啥?之Django教程,从零开始,到最后成功部署上线的项目。这一节,我们来设计文章的模型。
上一节,我们已经把文章详情页写好了,这一节,我们要开发文章模型了。
早在一开始,我们就创建了Post应用,那么我们的文章结构设计,也会在这个应用当中创建。
需求分析
首先我们得简单分析一下文章模型应该有哪些变量:
- 标题(
title
) - 作者(
author
) - 摘要(
description
) - 缩略图(
thumbnail
) - 正文(
content
) - 正文HTML(
content_html
) - 是否是md格式(
is_md
) - 分类(
category
) - 标签(
tag
) - 状态(
status
) - 发布时间(
publish_time
) - 显示时间(
publish_time_show
) - 文章时间ID(
time_id
)
这里要说一下‘是否是md格式’和‘正文HTML’这两个变量。
因为我们的文章是以md格式写的,所以这里我们要做一个判断,是否是md格式输入。如果是md格式的输入,我们使用mistune库来讲我们输入的md文章转化成html格式,再将结果保存到content_html
中。
细心的同学就会发现,这里我们新引入了两个东西,分类(category)和标签(tag),这两个东西,我们也要单独抽出来,创建模型,但是这两个目前很简单,只需要一个名字就好了。
但是,因为我们的首页有好几个板块,比如把文章放到顶部的四个位置,所以我们还需要添加几个辅助变量才行:
- 是否是置顶文章(is_top)
- 是否是首页文章(is_hot)
- 权重(priority)
简单说一下这几个变量的作用:
- 是否是置顶文章,是将来还会有文章列表页面,到时候需要一篇或者两篇文章是置顶的;
- 是否首页文章和权重,则是反映出首页顶部四个大图的文章。通过权重的值来调整位置。
这下简单了,接下来我们就只需要在Post应用下的models.py文件中,创建我们的post,category还有tag类就可以了:
class Category(models.Model):
name = models.Cha