• python_django_admin


    admin 是Django提供的基于web的管理工具,是系统管理员用于数据的输入,删除和查询的管理工具。

    超级管理员在settings中的集成:INSTALLED_APPS=['django.contrib.admin']

    1.创建超级用户python manage.py createsuperuser

     2.浏览器登录用户

    3.添加自己的数据模型

    from django.db import models
    
    
    class Grade(models.Model):
        gradeid = models.CharField(max_length=20)
        g_name = models.CharField(max_length=15)
    
        def __str__(self):     # 在Django管理中userModel object显示为姓名
            return self.g_name
    
    class Student(models.Model):
        s_name = models.CharField(max_length=20)
        s_age = models.IntegerField()
        s_sex = models.BooleanField(default=True)   # 默认为男
        s_gradeid = models.ForeignKey(Grade, on_delete=models.CASCADE)
        def __str__(self):
            return self.s_name
    对应models.py

    在admin中注册需要管理的数据库表:

    from myapp.models import Student, Grade
    
    admin.site.register([Student, Grade])   

    效果:

     设置界面为中文:(在settings.py中修改配置如下)

    # LANGUAGE_CODE = 'en-us'
    # 
    # TIME_ZONE = 'UTC'
    
    LANGUAGE_CODE = 'zh-hans'
    
    TIME_ZONE = 'Asia/shanghai'
    
    USE_I18N = True
    
    USE_L10N = True
    
    # USE_TZ = True
    USE_TZ = False   # 关闭时区

    4.添加自己的管理类(在admin.py中定义类):

    from django.contrib import admin
    
    from myapp.models import Student, Grade
    
    # 添加自己的管理类
    class StudentAdmin(admin.ModelAdmin):
        def sex(self):     # 对性别的true/false进行处理
            if self.s_sex:
                return ''
            else:
                return ''
        sex.short_description = '性别'    # 设置显示标题
        list_display = 's_name', sex    # 在student页显示表,s_name/s_gradeid分别为models中的字段
        search_fields = 's_name', 's_age'    # 可搜索的字段名
        list_filter = 's_name', 's_age'     # 过滤字段
        list_per_page = 2     # 分页,每页显示多少条数据
        fieldsets = (
            ('基本信息', {'fields': ('s_name', 's_age')}),     # fields :显示的字段
            ('可选信息', {'fields': ('s_gradeid', 's_sex')})   # exclude:不显示的字段
        )
    
    
    admin.site.register(Student, StudentAdmin)    # 注册

    效果1:student的显示

     效果2:显示方式

     5.admin中的级联

    from django.contrib import admin
    
    from myapp.models import Student, Grade
    
    class StudentInfo(admin.TabularInline):
        extra = 3  # 创建的基础条数
        model = Student  # 连接的表
    
    class GradeAdmin(admin.ModelAdmin):
        inlines = [StudentInfo]
    
    admin.site.register(Grade, GradeAdmin)

    效果:

     6.修改Django管理的HTML页面

  • 相关阅读:
    Windows 2003安全配置最佳方法(转)
    令人十分怨念的tomcat注册成windows服务(转)
    AMR开源编码jrtplib中与int系统重定义问题解决
    由系统熵转移的思考
    此男因为什么被送进医院?
    [转]风水师的郁闷
    飞盘奇门局例我能顺利办好护照拿到签证出国参加会议吗?
    最近工作方面发生了一些大事情,所以特地为此摇了一挂,请高手进来断一断。
    概率面前的错误
    杜新会一个精彩占例之反推
  • 原文地址:https://www.cnblogs.com/Vera-y/p/12048181.html
Copyright © 2020-2023  润新知