首页 > 编程语言 > 详细

python_django_admin

时间:2019-12-16 12:28:15      阅读:69      评论:0      收藏:0      [点我收藏+]

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页面

python_django_admin

原文:https://www.cnblogs.com/Vera-y/p/12048181.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!