zoukankan      html  css  js  c++  java
  • 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页面

  • 相关阅读:
    程序员如何判断是否到了该辞职的时候?
    牛客网
    C++继承详解:共有(public)继承,私有(private)继承,保护(protected)继承
    为什么构造函数不能声明为虚函数,析构函数可以
    为什么要线程同步,说出线程同步的几种方法
    内存字节对齐
    std::map的删除
    阻塞调用ShellExecute函数
    无法打开包括文件:“SDKDDKVer.h”: No such file or directory
    Legacy C++ MongoDB Driver
  • 原文地址:https://www.cnblogs.com/Vera-y/p/12048181.html
Copyright © 2011-2022 走看看