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的更多相关文章

  1. 用node-webkit(NW.js)创建桌面程序

    以往写windows桌面程序需要用MFC.C#之类的技术,那么如果你只会web开发技术呢?或者说你有一个网站,但是你想把你的网站打包成一个桌面应用程序,该如何做呢? 答案就是用node-webkit这 ...

  2. 使用node-webkit包装浏览器

    node-webkit简称nwjs:开源地址 https://github.com/nwjs/nw.js 参考博客 https://www.cnblogs.com/soaringEveryday/p/ ...

随机推荐

  1. mysql创建用户账号出错

    在数据库中输入“create user 'tom'@'%' identified by '123456';”时,出现“ERROR 1819 (HY000): Your password does no ...

  2. 开源的android客户端,ghost网站

    https://github.com/TryGhost/Ghost-Android http://docs.ghostchina.com/zh/

  3. 使用aop和BindingResult进行参数验证

    1.在需要校验的参数名上面添加注解 2.在web层接收参数(参数前面使用@Valid进行标记,后面必须紧跟参数bindingResult,存储参数的错误信息) 3.使用aop进行校验信息统一处理 @C ...

  4. CDHkafka脚本

    启动客户端的命令 /opt/cloudera/parcels/KAFKA--/bin/kafka-console-producer --broker-list hadoop102:9092 --top ...

  5. BZOJ 4568: [Scoi2016]幸运数字(倍增+线性基)

    传送门 解题思路 异或最大值肯定线性基了,树上两点那么就倍增搞一搞,就维护每个点到各级祖先的线性基,时间复杂度\(O(nlog^3n)\),并不知道咋过去的. 代码 #include<iostr ...

  6. Android学习--apk打包过程

    1. 使用aapt工具,给所有的res目录下的资源文件生成对应的id,id会被放进R.java文件中 2. JavaC编译器,将所有Java文件转换为Class文件,其中,内部类会分别生成.class ...

  7. 6.zabbix微信告警3.2

    原文地址: https://blog.cactifans.com/2016/01/27/zabbix%E5%BE%AE%E4%BF%A1%E5%91%8A%E8%AD%A6/ pdf : 链接: ht ...

  8. [CSP-S模拟测试41]题解

    中间咕的几次考试就先咕着吧…… A.夜莺与玫瑰 枚举斜率.只考虑斜率为正且不平行于坐标轴的直线,最后把$ans\times 2$再$+1$即可. 首先肯定需要用$gcd(i,j)==1$确保斜率的唯一 ...

  9. leetcode python丑数

    # Leetcode 263 丑数### 题目描述 编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 `2, 3, 5` 的**正整数**. **示例1:** 输入: 6 输出: true ...

  10. Spring Cloud配置中心客户端读取配置

    微服务连接配置中心来实现外部配置的读取. 引入依赖 <dependencies> <dependency> <groupId>org.springframework ...