技术交流QQ群:1027579432,欢迎你的加入!
本教程来源于B站杨仕航Django2.0开发视频教程,如需转载,必须注明来源!
1.定制admin后台
进一步对admin后台进行定制,打开mysite文件夹下的admin.py文件,添加如下内容:class ArticleAdmin(admin.ModelAdmin):
list_display = ("id", "title", "content")
ordering = ("id",) # 添加-表示依据id字段倒序排列文章
# 注册模型
admin.site.register(Article, ArticleAdmin)
使用另一种方法对admin后台进行定制,打开mysite文件夹下的admin.py文件,添加如下内容:@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
list_display = ("id", "title", "content")
ordering = ("id",) # 添加-表示依据id字段倒序排列文章
2.修改模型
修改模型需要更新数据库,执行以下两条命令:
python manage.py makemigrations python manage.py migrate 修改模型前,建议先备份数据库db.sqlite3文件。打开article文件夹下的models.py文件,添加如下内容:created_time = models.DateTimeField() # 文章的创建日期
打开article文件夹下的admin.py文件,在list_display变量中添加created_time字段,如下所示:list_display = ("id", "title", "content", "created_time")
依次执行制造迁移和迁移命令:
python manage.py makemigrations,注意此处需要设置created_time的默认值 ,通常有三种方法可以设置默认值:
python manage.py migrate 打开article文件夹下的models.py文件,在当中增加文章上一次更新日期字段,如下所示:last_updated_time = models.DateTimeField(auto_now=True) # 文章的更新时间
打开article文件夹下的admin.py文件,在list_display变量中添加last_updated_time字段,如下所示:list_display = ("id", "title", "content", "created_time", "last_updated_time")
注意:每次修改完模型文件models.py后,都必须执行制造迁移和迁移两个命令 。 增加作者信息:打开article文件夹下的models.py文件,在当中增加作者信息auther字段,如下所示:from django.contrib.auth.models import User
# 增加作者信息,一个作者可能对应多篇文章,因此在数据库中将作者设置为外键
auther = models.ForeignKey(User, on_delete=models.DO_NOTHING, default=1)
打开article文件夹下的admin.py文件,在list_display变量中添加auther字段,如下所示:list_display = ("id", "title", "auther", "content", "created_time",
"last_updated_time", )
在增加作者信息时,auther字段由于粗心打错了拼写,需要手动将其改写为author。然后执行制造迁移和迁移命令,如下所示:E:\Django\mysite
$ python manage.py makemigrations
Did you rename article.auther to article.author (a ForeignKey)? [y/N] y
Migrations for 'article':
article\migrations\0005_auto_20200504_1042.py
- Rename field auther on article to author
E:\Django\mysite
$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, article, auth, contenttypes, sessions
Running migrations:
Applying article.0005_auto_20200504_1042... OK
增加布尔型字段值和数值型字段,打开article文件夹下的models.py文件,在当中增加是否删除is_delete字段和阅读量readed_num字段,如下所示:# 是否删除,用于标记某条数据是否已经被删除
is_deleted = models.BooleanField(default=False)
# 阅读量
readed_num = models.IntegerField(default=0)
打开article文件夹下的admin.py文件,在list_display变量中添加is_deleted字段,如下所示:list_display = ("id", "title", "author", "is_deleted", "content", "created_time",
"last_updated_time", )
打开article文件夹下的views.py文件,在当中修改代码article=Article.objects.all()成如下所示。因此,当删除某篇文章时,打开localhost:8000/article/前端页面就会自动进行更新。
articles = Article.objects.filter(is_deleted=False)