django的后台管理系统

进入后台

  • 创建一个超级用户python manage.py createsuperuser,然后填写用户名、密码等信息。
  • 输入localhost/admin,然后输入账号密码,进入后台管理系统。(里面自带一个用户和组,在用户中只有一个超级管理员用户)
    图片.png

如何使用后台管理系统管理自己的模块?

  • 进入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)
  • 在里面可以进行用户信息的修改。


    图片.png

后台的 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属性两个属性只能选择其一。

图片.png

图片.png

Boolean类型的设置

BooleanField类型默认展示为对或者错的图标,这个不利于用户的友好度,所以我们可以修改掉整个


图片.png
  • 在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]

页面展示如下:

图片.png

这样用户的体验度就提高了,但是使用了方法后,我们发现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]

页面效果如下:


图片.png

。。。。。未完成等待ing

你可能感兴趣的:(django的后台管理系统)