文档章节

Django基础-ModelAdmin管理

ZHAO_JH
 ZHAO_JH
发布于 2018/09/11 20:14
字数 876
阅读 41
收藏 0

项目准备

创建项目

django-admin startproject Mydjango
cd Mydjango
python manage.py startapp APP

生成数据表

python manage.py makemigrations APP
python manage.py migrate

配置文件

admin.py

#coding=utf8
from django.contrib import admin
from .models import *                                   # 引入models模块

admin.site.site_title = 'Django后台管理程序'            # 站点标题,默认名称【站点管理】  
admin.site.site_header = 'MyDjango'                     # 站点头部名称,默认名称【Django管理】

class Personnel_Table_Custom(admin.ModelAdmin):         # 自定义类--自定义显示表信息
    list_display = ("id","Name","Per_City","Date")      # 自定义显示字段
    list_editable = ("Name",)                           # 自定义显示字段设定可编辑
    list_per_page = 10                                  # 分页显示行数
    list_filter = ('Per_City',)                         # 列表过滤选项
    filter_horizzontal = ('Name',)                      # 自定义添加字段搜索(下拉多选使用)
    search_fields = ('Name',)                           # 根据字段搜索
    ordering = ("id",)                                  # 以 id 字段排序,默认升序,降序字段前加-,设置第二排序后再跟字段
class City_Table_Custom(admin.ModelAdmin):         # 自定义类--自定义显示表信息
    list_display = ("id", "City")                       # 自定义显示字段
    list_editable = ("City",)                           # 自定义显示字段设定可编辑

admin.site.register(Personnel_Table,Personnel_Table_Custom)    #admin中添加表信息,(models.表名,自定义类名)
admin.site.register(City_Table,City_Table_Custom)
# 如果直接添加表名无选择自定义类,则默认全部显示
# admin.site.register(City_Table)

apps.py

from django.apps import AppConfig


class AppConfig(AppConfig):
    name = 'APP'

models.py

# coding=utf8
from django.db import models

# Create your models here.
class Personnel_Table(models.Model):                                                    #人员表
    id = models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='编号')  # 创建主键,自增长、设置主键、无序列号设置、并创建别名
    Name = models.CharField("姓名",max_length=20,null=False)                                          # 创建字符串字段,最大长度为20,并创建别名,且不能为空
    Date = models.DateField("日期")                                                                   # 创建日期字段
    Per_City = models.ForeignKey("City_Table",on_delete=models.CASCADE,verbose_name='城市')           # 一对多关联表

    def __str__(self):  # 类str方法,用于调取显示字符串而不是内存地址
        return self.Name
    class Meta:
        verbose_name = "人员"                                                                         # 表的别名
        verbose_name_plural = "人员"                                                                  # 表的复数别名,如果只有别名无复数表名默认显示名称后自动添加字母s
class City_Table(models.Model):                                                         #城市表
    id = models.AutoField('序号',auto_created=True, primary_key=True, serialize=False)                  # 创建主键,自增长、设置主键、无序列号设置、并创建别名
    City = models.CharField(max_length=20,verbose_name="城市")                                        # 创建字符串字段,最大长度为20,并创建别名
    def __str__(self):  # 类str方法,用于调取显示字符串而不是内存地址
        return self.City
    class Meta:
        verbose_name = "城市"                                                                         # 表的别名
        verbose_name_plural = "城市"                                                                  # 表的复数别名,如果只有别名无复数表名默认显示名称后自动添加字母s

views.py

# coding=utf8
from django.shortcuts import render

# Create your views here.

settings.py

INSTALLED_APPS

   'APP',

TEMPLATES

 'DIRS': [os.path.join(BASE_DIR, 'APP/templates')],

LANGUAGE_CODE

LANGUAGE_CODE = 'zh-hans'
#中文显示

TIME_ZONE

TIME_ZONE = 'Asia/Shanghai'
#时区设置

服务运行测试

创建用户名密码

python manage.py createsuperuser

运行服务

python manage.py runserver

访问地址

http://127.0.0.1:8000/admin

扩展说明

中文显示

后台综合中文显示

setting中设置,后台中文显示【但不包含表名,APP名称等】

'django.middleware.locale.LocaleMiddleware',
#中间件中添加

或

LANGUAGE_CODE = 'zh-hans'
#语言设置

app中文显示

app下的__init__,app别名后台中显示

# coding=utf8
from django.apps import AppConfig

default_app_config = 'APP.IndexConfig'      #默认app配置变更
class IndexConfig(AppConfig):               #重写IndexConfig类
    name = 'APP'                            #应用名称
    verbose_name = '主管理菜单'             #应用别名(admin后台显示名称)

表名中文显示

models中设置,表名,后台中文显示

class Meta:
    verbose_name = "城市"
    verbose_name_plural = "城市"

字段名中文显示

models中设置,字段名,后台中文显示

Name = models.CharField("姓名",max_length=20,null=False) 
或
Name = models.CharField(max_length=20,null=False,verbose_name="姓名") 

© 著作权归作者所有

ZHAO_JH
粉丝 17
博文 203
码字总数 182453
作品 0
宝山
运维
私信 提问
django admin应用开发(1) 之 引言

第一节 引言 1.1 准备知识 Python&Django配置 Django官方主页:www.djangoproject.com 开发IDE,个人倾向于PyCharm,在这里可以快速的学习到一些Django使用技巧。 1.2 什么是应用(APP) 要想...

Kinegratii
2014/04/04
280
0
Django ModelAdmin 设置只读

在使用django的时候,ModelAdmin默认对于model的操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑的,使用下面的代码可以使ModelAdmin中让他显示为只读: class ReadOnlyMode...

ranvane
2014/08/26
399
0
django admin源码分析

Django Admin源码流程 一、整体看Admin执行流程 1. 启动admin 注册模型 设计URL并将AdminSite实例挂钩到您的URLconfig中 二、admin.site.register django启动的时候,顺序为:先register,然...

zhujun2017
2018/06/04
121
0
django admin应用开发(2) 之 查看、过滤、搜索和排序

第二节 查看、过滤、搜索和排序 2.1 ModelAdmin能做什么 ModelAdmin是admin应用中最常用的一个类,最终效果都将在这个类中体现出来。总的来说,这个类可以完成以下功能: 逻辑实现 单个对象(...

Kinegratii
2014/04/09
2.5K
0
Django admin 常用定制

历史原因,使用django1.6.5,shame on me.... 1. 显示admin日志 3.添加链接字段

好铁
2018/01/09
370
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA CAS单点登录之三:CAS代理模式演练

前言 JAVA CAS单点登录之一:搭建CAS服务器 JAVA CAS单点登录之二:CAS普通模式1演练 代理模式相相对上一节的普通模式,更加复杂了。但配置起来也会稍微有些差别。所谓难者不会,会者不难。如...

彬彬公子
32分钟前
4
0
Webfont 的兼容性问题[持续更新]

本文转载于:专业的前端网站➺Webfont 的兼容性问题[持续更新] 低版安卓手机的 webview 显示不了,另外黑莓手机显示出来是这样: 生成工具: 离线字体生成工具:webfont 在线字体生成平台:ico...

前端老手
37分钟前
3
0
调用链与日志关联的探索式查询

摘要:本文将就Observability中的日志聚合、分布式跟踪及具体应用中结合使用进行展开说明。 一、Observability Observability是一个最近几年开始在监控社区流行的术语。本文将Observability...

宜信技术学院
37分钟前
3
0
Java常见异常处理

异常是Java程序中经常遇到的问题,一个异常就是一个Bug,就要花很多时间来定位异常。 Java异常 (1)Throwable是Java异常的顶级类,所有的异常都继承于这个类。 (2)Error,Exception是异常...

daxiongdi
55分钟前
4
0
Validator 常用注解

说明 Validator主要是校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数字的,等等。那么在spring boot怎么使用这么强大的校验框架呢。 常用 [@null](https:...

五彩的颜色
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部