Django目录:https://www.jianshu.com/p/dc36f62b3dc5
什么是Admin组件
admin组件是框架自动生成的后台管理界面。
从ORM模型中读取元数据,简单配置即可使用。
功能强大,可用于对数据库中的数据管理。
准备
AdminDemo.app01.models.py
-------------------------
from django.db import models
# Create your models here.
class User(models.Model):
name = models.CharField(max_length=32)
pwd = models.CharField(max_length=32)
#外键
roles = models.ManyToManyField('Role')
class Role(models.Model):
title = models.CharField(max_length=32)
#外键
permissions = models.ManyToManyField('Permission')
class Permission(models.Model):
title = models.CharField(max_length=32)
url = models.CharField(max_length=32)
AdminDemo.app01.admin.py
-------------------------
#向admin注册
from django.contrib import admin
# Register your models here.
from app01.models import User
from app01.models import Role
from app01.models import Permission
admin.site.register(User)
admin.site.register(Role)
admin.site.register(Permission)
别忘了向setting注册。
生成表
makemigrations
migrate
创建超级用户:
createsuperuser
之后会有四个输入项,分别是:用户名,邮箱,密码,确认密码。
之后就可以登入admin。
admin后台
页面管理
添加按钮 添加页面 添加完成自定义表单
这里我们看他的显示是对象(1),(2)这样的显示,现在我们要在模型表中加上:
def __str__(self):
return self.title
页面显示
但是我们的页面只显示title这一个字段,可不可以让我们的url字段也显示出来呢?
AdminDemo.app01.admin.py
-------------------------
from django.contrib import admin
# Register your models here.
from app01.models import User
from app01.models import Role
from app01.models import Permission
admin.site.register(User)
admin.site.register(Role)
#继承ModelAdmin,使用我们自己定义的字段名。
class PermissionConfig(admin.ModelAdmin):
list_display = ["title","url"]
admin.site.register(Permission,PermissionConfig)
页面显示
同样也可以加上id字段
from django.contrib import admin
# Register your models here.
from app01.models import User
from app01.models import Role
from app01.models import Permission
admin.site.register(User)
admin.site.register(Role)
class PermissionConfig(admin.ModelAdmin):
list_display = ["id","title","url"]
#如果单纯加上id,id是倒序排序的(按照添加顺序),所以要用ordering来改成升序。
ordering = ["id"]
admin.site.register(Permission,PermissionConfig)
页面显示
网友评论