Django基础-ModelAdmin管理

项目准备

创建项目

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="姓名") 

转载于:https://my.oschina.net/zhaojunhui/blog/2049775

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值