后台管理主要是针对blog目录下的**admin.py文件进行编辑,但是要发布博客文章,必须先创建超级管理员
1、cmd命令,跳转到一级目录mysite下。运行命令:
python manage.py createsuperuser
用户名:admin
Email:可以不写
密码:Pass1234
Superuser Created successfully.创建成功
2、测试一下看看
一级目录mysite下,用cmd命令,运行Django服务。
默认为8000端口,但是这个端口跟酷狗冲突,我们可以自主选择一个8080端口
python manage.py runserver 8080
报错[winError 10013],意思是端口被占用
3、浏览器中输入网址,打开后台:
http://127.0.0.1:8080/admin/
此时后台中,只有用户管理界面。
注意:Group和User模型(models)位于,django.contrib.auth中,
是django 权限管理档案中的一部分。
Users中可以看到之前创建的用户信息。blog应用中的models.py文件下的Post类(也是Post表,上一节课刚创建的那个),跟它总是关联在一起。通过author外键。
对blog目录下的***admin.py***文件进行编辑
from django.contib import admin#默认就这一句
from .models import Post#导入本路径下models.py文件中的Post类,第三课刚创建的,models前边加个点
admin.site.register(Post)#注册Post类
此时在后台中显示blog项目,可以发布信息了。但是发布后,显示的不是标题名,而是Post Object
修正方法:需要在第三课中,blog文件夹下的,models.py文件的Post类中增加一个方法
def __Str__(self):
return self.title
注意:添加文章时,slug必须不同,不同文章指向不同的url地址
修改文件夹blog中的admin.py文件
1、admin.py文件中,添加一个类,这个类要添加在from下边,admin.site.register上边
用于制定在后台中显示文章的哪些内容?
class PostAdmin(admin.ModelAdmin):#
# > ModelAdmin是admin中自带的模块,应该是控制管理员的,如果想增加用户,修改管理员权限,应该在这里吗?
list_display=('title','slug','auther','publish','status')#定义要显示的字段。
list_filter=('status','created','publish')#定义右侧菜单栏
search_fields=('title','body')#定义搜索框,根据标题和内容查找
prepopulated_fields={'slug':('title',)}#根据标题,预填充标识。('title',)这是个元组,后边有逗号。
#> prepopulated_fields,这个东西有啥用啊?
raw_id_fields=('author',)#添加一个搜索控件,添加文章时可以直接选作者填上
date_hierarchy='publish'#添加一个时间层的快速导航栏
ordering=['status','publish']#作一个排序,按照状态和时间排序
2、将刚添加的类在后台注册一下,在admin.py文件中修改admin.site.register(Post)
admin.site.register(Post,PostAdmin)#注册Post和PostAdmin
from django.contib import admin#默认就这一句
from .models import Post#导入本路径下models.py文件中的Post类,第三课刚创建的,models前边加个点
class PostAdmin(admin.ModelAdmin):
list_display=('title','slug','auther','publish','status')#定义要显示的字段。
list_filter=('status','created','publish')#定义右侧菜单栏
search_fields=('title','body')#定义搜索框,根据标题和内容查找
prepopulated_fields={'slug':('title',)}#根据标题,预填充标识。('title',)这是个元组,后边有逗号。
#> prepopulated_fields,这个东西有啥用啊?
raw_id_fields=('author',)#添加一个搜索控件,添加文章时可以直接选作者填上
date_hierarchy='publish'#添加一个时间层的快速导航栏
ordering=['status','publish']#作一个排序,按照状态和时间排序
admin.site.register(Post,PostAdmin)#注册Post和PostAdmin
定制后台功能,就是在admin.py中添加一个类(这里是PostAdmin),所有功能属性都添加在这个类中,最后将类注册进后台即可。
为model定制管理后台:改的主要是blog文件夹下的admin.py文件,属性就是一个个的元组。
书写规则:
list_display——定义要显示的字段
list_filter——过滤菜单(右侧)
search_fields——搜索框
prepopulated_fields——预填充(根据标题填标识,url)
raw_id_fields——搜索控件
date_hierarchy——时间层的快速导航栏
ordering——列表类型,做一个排序