Django基礎-ModelAdmin管理

項目準備

建立項目python

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

生成數據表django

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_APPSapp

'APP',

TEMPLATES測試

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

LANGUAGE_CODEcode

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

TIME_ZONEserver

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="姓名")
相關文章
相關標籤/搜索