美文网首页
2.8.5Django --14.1Admin

2.8.5Django --14.1Admin

作者: 寒暄_HX | 来源:发表于2020-03-05 17:36 被阅读0次

    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)
    
    
    页面显示

    一些其他的配置

    相关文章

      网友评论

          本文标题:2.8.5Django --14.1Admin

          本文链接:https://www.haomeiwen.com/subject/zgehlhtx.html