7-在djangoadmin后台发布文章(代码片段)

Django学习小组 Django学习小组     2022-12-03     522

关键词:

在此之前我们完成了 Django 博客首页视图的编写,我们希望首页展示发布的博客文章列表,但是它却抱怨:暂时还没有发布的文章!如它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 Admin 后台来发布我们的博客文章。

创建 Admin 后台管理员账户

要想进入Django Admin 后台,首先需要创建一个超级管理员账户。我们在 让 Django 完成翻译:迁移数据库 中已经创建了一个后台账户,但如果你没有按照前面的步骤创建账户的话,可以运行 python manage.py createsuperuser 命令新建一个:

python manage.py createsuperuser

Username (leave blank to use 'zmrenwu@163.com'):  admin
Email address:  admin@example.com
Warning: Password input may be echoed.
Password:  ******
Warning: Password input may be echoed.
Password (again):  ******
Superuser created successfully.

注意:在命令行输入密码时可能不会显示输入的字符,不要以为键盘坏了,照正常的方式输入密码即可。

在 Admin 后台注册模型

要在后台注册我们自己创建的几个模型,这样 Django Admin 才能知道它们的存在,注册非常简单,只需要在 blog\\admin.py 中加入下面的代码:

blog/admin.py

from django.contrib import admin
from .models import Post, Category, Tag

admin.site.register(Post)
admin.site.register(Category)
admin.site.register(Tag)

激活虚拟环境,运行开发服务器,访问 http://127.0.0.1:8000/admin/ ,就进入了到了Django Admin 后台登录页面,输入刚才创建的管理员账户密码就可以登录到后台了。

可以看到我们刚才注册的三个模型了,点击 Posts 后面的增加按钮,将进入添加 Post 的页面,也就是新增博客文章。然后在相关的地方输入一些测试用的内容,增加完后点击保存,这样文章就添加完毕了,你也可以多添加几篇看看效果。注意每篇文章必须有一个分类,在添加文章时你可以选择已有分类。如果数据库中还没有分类,在选择分类时点击 Category 后面的 + 按钮新增一个分类即可。

你可能想往文章内容中添加图片,但目前来说还做不到。在支持 Markdown 语法部分中将介绍如何在文章中插入图片的方法。

访问 http://127.0.0.1:8000/ 首页,你就可以看到你添加的文章列表了,下面是我所在环境的效果图:

定制 Admin 后台

在 admin post 列表页面,我们只看到了文章的标题,但是我们希望它显示更加详细的信息,这需要我们来定制 Admin 了,在 admin.py 添加如下代码:

blog/admin.py

from django.contrib import admin
from .models import Post, Category, Tag

class PostAdmin(admin.ModelAdmin):
    list_display = ['title', 'created_time', 'modified_time', 'category', 'author']

# 把新增的 PostAdmin 也注册进来
admin.site.register(Post, PostAdmin)
admin.site.register(Category)
admin.site.register(Tag)

由于如何定制 Admin 后台不是本教程的重点,这里只是为了简单地到达期望效果,因此不再对上述代码做过多解释。

刷新 Admin Post 列表页面,可以看到显示的效果好多了。

总结

本章节的代码位于:Step7: publish posts using django admin

如果遇到问题,请通过下面的方式寻求帮助。

更多Django 教程,请访问 追梦人物的博客

djangoadmin管理工具(代码片段)

...示(7)增加搜索功能此文章参考菜鸟教程:DjangoAdmin管理工具|菜鸟教程(runoob.com)Django版本:>>>django.VERSION(4,1,0,'final',0)PS:基于前几章的进度进行修改一、概述使用DjangoAdmin可以快速对数据库的各个... 查看详情

djangoadmin管理工具(代码片段)

文章目录一、概述二、使用管理工具(1)激活管理工具(2)使用管理工具(3)复杂模型(4)自定义表单(5)内联(lnline)显示(6)修改数据表显示(7)增加搜索功... 查看详情

djangoadmin管理工具(代码片段)

文章目录一、概述二、使用管理工具(1)激活管理工具(2)使用管理工具(3)复杂模型(4)自定义表单(5)内联(lnline)显示(6)修改数据表显示(7)增加搜索功... 查看详情

djangoadmin管理工具(代码片段)

文章目录一、概述二、使用管理工具(1)激活管理工具(2)使用管理工具(3)复杂模型(4)自定义表单(5)内联(lnline)显示(6)修改数据表显示(7)增加搜索功... 查看详情

简单更改djangoadmin登录页面(代码片段)

在创建了Django一个应用以后,启动项目,输入网址:http://127.0.0.1:8000/admin系统会出现默认的后台登陆页面可通过修改应用的admin.py文件,改变后台登陆的header和titlefromdjango.contribimportadminadmin.site.site_header=‘运维管理系统‘#设置headera... 查看详情

djangoadmin相关知识(代码片段)

...chenqi/articles/6083427.htmhttps://www.cnblogs.com/haiyan123/p/8034430.htmlDjangoadmin:关于数据库的一个后台管理工具  admin是django强大功能之一,它能共从数据库中读取数据,呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,... 查看详情

djangoadmin添加用户出现外键约束错误(代码片段)

今天在做mxonline项目时,注册了用户表进admin后,想在后台添加一个用户试试,结果出现了错误,经过一番搜索发现以下两个解决方法,不过我只用了一种报错信息:IntegrityError:(1452,u‘Cannotaddorupdateachildrow:aforeignkeyconstraintfails(`mxo... 查看详情

djangoadmincookbook-18如何限制对djangoadmin管理部分功能的使用(代码片段)

18.如何限制对DjangoAdmin管理部分功能的使用?你可以使用权限系统启用和限制对DjangoAdmin后台部分功能的访问。添加模型时,默认情况下,Django会为其创建add添加,change修改以及delete删除三种权限。可以在Admin后台中用这些权限来... 查看详情

djangoadmincookbook-24如何从两个不同的模型创建一个djangoadmin后台页面(代码片段)

24.如何从两个不同的模型创建一个Django管理员?Hero模型外联到Category,因此你可以从Hero管理页面中选择一个Category对象。如果还希望能够从Hero管理页面创建及修改Category对象,则可以更改HeroAdmin管理模型,并自定义save_model行为... 查看详情

djangoadmincookbook-8如何在djangoadmin中优化查询(代码片段)

8.如何在Djangoadmin中优化查询?如果你的Admin后台中有很多计算字段,那么你需要对每个对象运行多个查询,这会使你的Admin后台变得非常慢。要解决此问题,你可以重写管理模型中的get_queryset方法使用annotate聚合函数来计算相关... 查看详情

djangoadmincookbook-38如何获取特定对象的djangoadmin后台url(代码片段)

38.如何获取特定对象的DjangoAdmin后台URL?Hero模型有一个children字段,显示每个英雄的孩子的名字。你被要求将每个childrin链接到Hero模型更改页面。实现如下:@admin.register(Hero)classHeroAdmin(admin.ModelAdmin,ExportCsvMixin):...defchildren_display(se... 查看详情

8.10djangoadmin组件使用(代码片段)

介绍admin组件实现了更方便的WEB后台数据管理方式settings.py中第一个组件就是:INSTALLED_APPS=[‘django.contrib.admin‘,‘django.contrib.auth‘,‘django.contrib.contenttypes‘,‘django.contrib.sessions‘,‘django.contrib.messages‘,‘django.contrib.staticfiles‘,"... 查看详情

djangoadmincookbook-40如何为djangoadmin覆盖保存操作(代码片段)

40.如何为DjangoAdmin后台覆盖保存操作?ModelAdmin有一个save_model方法,用于创建和更新模型对象。通过覆盖此内容,您可以自定义admin的保存行为。该Hero模型具有以下字段:added_by=models.ForeignKey(settings.AUTH_USER_MODEL,null=True,blank=True,on_d... 查看详情

个人页面展示(代码片段)

...暴露:文件上传:个人页面展示:django后台管理:后台管理:djangoadmin后台管理xadmin组件(有bug)--》公司-->添加用户数据,修改数据,删除数据如何用:1.在应用中的admin.py注册要管理的表(模型类)fromapp01importmodelsadmin.site.register... 查看详情

djangoadmin(代码片段)

Dajngoadmin使用adminappDjango提供了基于web的管理工具。Django自动管理工具是django.contrib的一部分。你可以在项目的settings.py中的INSTALLED_APPS看到它:settings.py中INSTALLED_APPS=[‘django.contrib.admin‘,‘django.contrib.auth‘,‘django.contrib. 查看详情

djangoadmin图片上传回显(代码片段)

这个问题其实就是compute字段如何显示在djangoadmin的编辑表单中。由于djangoadmin默认只会显示model中editable=true的属性,所以计算字段需要特殊处理。最开始是在model中直接定义了一个自定义方法属性image_data。classProduct(models.Mo... 查看详情

安全-empirecms小于等于7.5版本后台xss漏洞复现(代码片段)

文章目录前言一、环境二、漏洞复现三、源码审计[1].漏洞点[2].hRepPostStr函数[3].ehtmlspecialchars函数[4].CkPostStrChar函数[5].AddAddsData函数[6].MAGIC_QUOTES_GPC变量[7].变量判空[8].变量调用[9].绕过分析四、修复前言安装配置的步骤略过,... 查看详情

django2.0.7使用小知识(代码片段)

Django2.0.3使用小知识运行环境:Python3.6.4Django2.0.7DjangoAdmin中model显示为中文定义model时,定义一个Meta对象,设置需要显示的中文名称。verbose_name为单数名称,verbose_name_plural为复数名称。因为中文没有区分单数、复数,所以都定义... 查看详情