Django入门:第七章、利用超级管理员发布博客文章

发布博客文章

回顾

在上一章中,我们煞费苦心的利用控制台中的命令行对我们的模型进行操作——增删改查。其中,我们创建了一个超级管理员用户,而且能在浏览器中启动http://127.0.0.1:8000/admin/,进入如下页面,本节我们将通过这个系统进行博客发布。

在这里插入图片描述

发布博客

那么,如何利用超级管理员发布博客文章呢?我们利用自己创建的用户名和密码进行登录。登录成功后,进入系统,见到如下页面:
在这里插入图片描述
我们可以看到,Groups和Users是Django在用户管理应用中默认的用户分类。单击User,我们能看到当前当前项目只有一个用户zoeu,我们可以自己创建Groups和Users,读者可以自己通过单击Add自行添加。
在这里插入图片描述

我们今天的任务是通过超级管理员发布博客文章,所以点击BLOGS下的Add按钮,我们进入如下页面,
在这里插入图片描述
在这个页面中添加自己想要完成的博客内容,这里所填的表单中的各项与我们在BlogArticles类中的属性对应,当我们填好每一项的内容之后,单击保存,这篇标题为《开工大吉》的博客就被保存到数据库中,页面跳转到博客文章列表,并且将在页面上方显示添加成功,如图所示:
博客列表表单
接下来我们可以通过查询数据库查看我们的博客文章内容:

sqlite> .header on
sqlite> .mode column
sqlite> select * from blogs_blogarticles;
id          title       body             publish              author_id
----------  ----------  ---------------  -------------------  ----------
1           开工大吉        假期还没过足瘾,表示舍不得国庆  2019-10-09 16:58:25  1
sqlite>

当然,我们上图中的博客列表有些简单,我们可以自定义让列表页更加丰富,所以我们需要在./blog/admin.py文章中,增加部分代码:

from django.contrib import admin
from .models import BlogArticles


# Register your models here.
class BlogArticlesAdmin(admin.ModelAdmin):
    list_display = ("title", "author", "publish")
    list_filter = ("publish", "author")
    search_fields = ("title", "body")
    raw_id_fields = ("author",)
    date_hierarchy = "publish"
    ordering = ["-publish", "author"]

admin.site.register(BlogArticles, BlogArticlesAdmin)

保存后刷新我们页面,我们的列表显示如下:
在这里插入图片描述

新增代码解释如下:

  • 首先定义一个BlogArticlesAdmin类,继承自ModelAdmin
  • list_display属性:设置列表可显示的字段,将列表栏显示文章标题、作者、和发布时间
  • list_filter属性:设置过滤选项,通过发布时间和作者对文章进行筛选
  • search_fields属性:搜索文章标题和文章内容进行文章查找
  • raw_id_fields属性:显示外键详细信息
  • date_hierarchy属性:按日期月份筛选
  • ordering属性:按发布日期排序

至此,相比于我们自己用代码去完成这些功能,Django能够用一行代码即可增加对一个模型(数据表)的增删查改,我们是不是看到一个强大的管理员工具,更多的功能需要自己去发现。

我们现在已经发布我们的博客,但是最重要的是如何把自己的博客给别人看到呢?下一章中我们就将沿着这个思路介绍我们的视图(Views),学会将我们的优秀的博客内容向大家展示(大显身手)。
下一个内容见。


注:Django入门笔记汇总博客

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值