Django目录:https://blog.csdn.net/qq_41106844/article/details/105554082
什么是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。
![20155953-5331c70ed9023688.png](https://i-blog.csdnimg.cn/blog_migrate/5f4ca4d362fc6d83b3e49f1c8643022d.png)
admin后台
页面管理
![20155953-d8eb0465bd18b41d.png](https://i-blog.csdnimg.cn/blog_migrate/1f623464f407cdf45949086cce007a6f.png)
添加按钮
![20155953-bea553c49225b7d7.png](https://i-blog.csdnimg.cn/blog_migrate/25c14b0d5ce8915fd6a281318170755a.png)
添加页面
![20155953-b6357fcf15ecfdd0.png](https://i-blog.csdnimg.cn/blog_migrate/eb19cf074c1c20712655692eb63d2103.png)
添加完成
自定义表单
这里我们看他的显示是对象(1),(2)这样的显示,现在我们要在模型表中加上:
def __str__(self):
return self.title
![20155953-be14628dc440283a.png](https://i-blog.csdnimg.cn/blog_migrate/85fde66a2c529e4958f581a63210607a.png)
页面显示
但是我们的页面只显示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)
![20155953-a83302e018389a4b.png](https://i-blog.csdnimg.cn/blog_migrate/fd3c6ae879f7872df784f884fb761dd7.png)
页面显示
同样也可以加上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)
![20155953-a97fa32f9dbd9ea7.png](https://i-blog.csdnimg.cn/blog_migrate/62ec2053f6399ee5b3d3439bee727b53.png)
页面显示