进入后台
- 创建一个超级用户
python manage.py createsuperuser
,然后填写用户名、密码等信息。 - 输入
localhost/admin
,然后输入账号密码,进入后台管理系统。(里面自带一个用户和组,在用户中只有一个超级管理员用户)
如何使用后台管理系统管理自己的模块?
- 进入admin.py文件
- 例如:两个models.py文件中有两个Users和Article两个表
输入以下的代码:
from django.contrib import admin
from .models import Users
from .models import Article
# Register your models here.
admin.site.register(Users)
admin.site.redister(Article)
- 当再次进入后台管理系统就能查看到Users表和Article表信息了。
- 可以重写str方法,展示Users的name或者其他的信息。(默认展示每个对象为object)
-
在里面可以进行用户信息的修改。
后台的 model 类的展示 (默认展示每个对象为object,如何显示更多?)
再次进入admin.py文件
#这个类是User类在后台展示所用
class UserAdmin(admin.ModelAdmin):
# 列表页面要显示属性
list_display = ["name", "nickname", "age", "birthday"]
# 过滤的属性
list_filter = ["age", "birthday"]
# 分页的每页数量
list_per_page = 2
# 增加和修改的属性
# fields = ["name", "nickname"]
# 注意,fields 和 fieldsets 不能同时出现
fieldsets = [
("必填", {"fields": ["age", "birthday"]}),
("选写", {"fields": ["name", "nickname"]})
]
同时,修改之前的admin.site.register(Users)
为admin.site.register(Users,UserAdmin)
,让后台管理系统直到这个类来规定Users的展示
注:fieldsets属性和field属性两个属性只能选择其一。
Boolean类型的设置
BooleanField类型默认展示为对或者错的图标,这个不利于用户的友好度,所以我们可以修改掉整个
- 在UserAdmin类中,定义一个方法,这个方法就是修改BooleeanField的类型的。
# 修改 BooleanField 类型的内容展示
def is_delete_label(self):
if self.is_delete:
return "删除"
else:
return "不删除"
# 列表页面要显示属性
# list_display = ["name", "nickname", "age", "birthday", "is_delete" ]
# 使用上面定义的方法来代替显示是否删除项
list_display = ["name", "nickname", "age", "birthday", is_delete_label]
页面展示如下:
这样用户的体验度就提高了,但是使用了方法后,我们发现verbose_name就失效了,因为此时使用的是方法名称,我们如果想要这个也按照我们想要的想法展示,需要增加一个项。
# 修改 BooleanField 类型的内容展示
def is_delete_label(self):
if self.is_delete:
return "删除"
else:
return "不删除"
# 用于表头展示
is_delete_label.short_description = "是否删除"
# 列表页面要显示属性
# list_display = ["name", "nickname", "age", "birthday", "is_delete" ]
# 使用上面定义的方法来代替显示是否删除项
list_display = ["name", "nickname", "age", "birthday", is_delete_label]
页面效果如下:
。。。。。未完成等待ing