关键词:
在此之前我们完成了 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 Admin 后台发布文章 - 追梦人物的博客 的评论区留言。
- 将问题的详细描述通过邮件发送到 djangostudyteam@163.com,一般会在 24 小时内回复。
更多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为复数名称。因为中文没有区分单数、复数,所以都定义... 查看详情