Django admin参数配置
admin参数配置
一. admin 启动
admin: Django的后台数据管理的web版本
针对Food表,url:
http://127.0.0.1:8000/admin/app02/food/ # 查询页面
http://127.0.0.1:8000/admin/app02/food/add/ # 增加页面
http://127.0.0.1:8000/admin/app02/food/1/change/ # 修改页面
http://127.0.0.1:8000/admin/app02/food/2/delete/ # 删除页面
加载setting中install_app
from django.contrib import admin
autodiscover_modules('admin')
二. 注册
在app01文件夹下的admin.py中注册models中的类:
class BookConfig(admin.ModelAdmin):
list_display = ['title', 'price', 'publishDate', 'publish'] # list_display中的字段不能是ManyToManyField.列表中写的都是字段字符串.

设置指定的字段可以点击跳转,默认左侧第一列,可以设置多个字段.list_display_links必须在list_display的后边,不然就会报错.显示查找不到list_display_links中括号中的字段名.
list_display_links = ['price', 'title'] # 设置指定的字段可以点击跳转,默认左侧第一列,可以设置多个字段.列表中写的都是字段字符串.

字面上看就可以发现红色框中的字体与右侧两列的不同.
过滤器:
list_filter = ['title', 'publish', 'authors'] # 过滤器的过滤条件,列表中写的都是字段字符串.

增加搜索框
列表内的字段为搜索框中输入内容查找时的匹配数据集合,查找时采用模糊匹配,将查到的结果全部显示出来
search_fields = ['title', 'price'] # 增加搜索框,列表内的字段为搜索框中输入内容查找时的匹配数据集合.列表中写的都是字段字符串.

实际注册的语句,括号中以一个参数填写model中的类名,第二个写的是admin.py中的单独设置的类名.
admin.site.register(Book, BookConfig) # 实际注册的语句,括号中以一个参数填写model中的类名,第二个写的是admin.py中的单独设置类名.
当没有设置单独的类名时:
admin.site.register(Food) # 只写一个models中的类名即可.
源码如下:
def register(self, model_or_iterable, admin_class=None, **options):
由源码可以看出,当第二个参数没有参数传入时,默认使用None.
批量操作:
def patch_init(self, request, queryset):
queryset.update(price=0)
patch_init.short_description = '价格初始化'
4 actions = [patch_init] # 将上边设置的批量操作添加到下拉菜单中
queryset为选中的数据集合.
结果如下:

在批量操作下拉菜单中多出一个设置的选项,使用此选项可以进行批量操作.
源码中实现的顺序:
源码: django.contrib.admin.sites模块
↓
class AdminSite(object):
def __init__(self):
self._registry = {}
def register(self, model, admin_class = None):
# 设置配置类
if not admin_class:
admin_class = ModelAdmin
self._registry[model] = admin_class(model, self)
site = AdminSite()
↓
加载每一个app下的admin.py文件:
from django.contrib import admin
admin.site.register(Book, BookConfig)
admin.site.register(Publish)
三. 设计url
1. 知识点
1. url(r'index/', views.index) # index不能带括号
2. url方法的分发
# 分发
(二级分发)
url(r'test/',([
url(r'yuan/',([
url(r'aaa/', aaa),
url(r'bbb/', bbb),
url(r'ccc/', ccc),
],None, None)), # 第一个None是app名字,第二个None是名称空间名字,列表中放url. url(r'alex', alex),
], None, None))
针对Food表,url:
http://127.0.0.1:8000/admin/app02/food/
http://127.0.0.1:8000/admin/app02/food/add/
http://127.0.0.1:8000/admin/app02/food/1/change/
http://127.0.0.1:8000/admin/app02/food/2/delete/
3.
model._meta.model_name: # 模型表的名称
model._meta.app_label: # 模型表所在的app的名称
config_obj: 某个model的配置类(自定义配置类或者默认配置类)对象
仿照admin实现一个自定义的增删改查的组件
(1) 启动
class StarkConfig(AppConfig): name = 'stark' def ready(self):
autodiscover_modules('stark')
(2) 注册
Django基础内容:
Django创建app命名:
python manage.py startapp app01
startapp app名字.
----------------------------------------------------------------------------------------------------------------------------------
admin汉化:
settings.py文件的:
LANGUAGE_CODE 设置为 ZH-hans.
------------------------------------------------------------------------ 字典小知识:
1 x = 'hello'
2 dic = {}
3 dic[x] = 123
4 print(dic)
结果:
{'hello': 123}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
ok打印与否?
def func():
print('ok')
l = [1, 2, 3, func()]
6 print(l)
函数加载过程中,打印ok
结果:
ok
[1, 2, 3, None]
python是边加载边执行的,当程序加载到列表的最后一个是,就会执行函数func,并将结果返回列表,此函数返回值为None.
-------------------------------------------------------------------------------------------
Django将各个模块放在不同的py文件中只是为了解耦.将所有的文件放在同一个py文件中也是完全可以的.
Django admin参数配置的更多相关文章
- django admin site配置(二)
1. ModelAdmin.inlines 将有外键的子类包含进视图 ,实例: class Author(models.Model): name = models.CharField(max_leng ...
- 如何给django admin.py配置超级管理员?注册表格?
admin.py是django给我们提供的功能非常强大的后台,况且支持拓展,,如果你要是觉得admin的后台不够牛逼你可以自己写一个!如何自己写一个后台,后面我有时间了会给大家更新!一起学习!一起进步 ...
- 【Django admin 中文配置】
打开settings.py文件,找到语言编码.时区的设置项,将内容改为如下: [其中 zh-Hans是简体中文 zh-Hant是繁体中文] LANGUAGE_CODE = 'zh-Hans' # LA ...
- 01: 重写Django admin
目录: 1.1 重写Django admin项目各文件作用# 1.2 重写Django admin用户认证 1.3 将要显示的表注册到我们自己的kind_admin.py中 1.4 项目首页:显示注册 ...
- Django之用户上传文件的参数配置
Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model): title = models.CharField(max_length=128) # ...
- Django进阶Admin篇 - admin基本配置
django admin 是django自带的一个后台app,提供了后台的管理功能. 基础知识点: 一.认识ModelAdmin 管理界面的定制类,如需扩展特定的model界面,需要从该类继承 二.注 ...
- Django admin 权威指南(一)
版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...
- Django admin site(一)ModelAdmin Options
Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 要使用admin,可以按照下面的步骤: 将'dj ...
- Django Admin 简单部署上线
前言 打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用Django admin,默认的admin并不漂亮,于是我使用了这个django-suit插件来美化 如图: 是不是比原来的漂亮多了. ...
随机推荐
- emacs 绑定快捷键 c/c++
;;跳转到函数定义的地方 (global-set-key (kbd "C-<f2>") 'ggtags-find-definition) ; Control+F2 ;; ...
- Window快捷键
1.带windows 键 Win + E 打开文件夹 Win + R 调出运行命令 Win + T 显示任务栏,并在在其中切换 Win +Pause 显示系统属性 Win + Home 最小化 / 还 ...
- ASP.NET -- WebForm -- 页面生命周期
ASP.NET -- WebForm -- 页面生命周期 ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件 ...
- IntelliJ IDEA 创建maven管理的webapp项目
因为使用框架时基本需要使用maven管理项目,所以单独写一个搭建maven项目的流程 第一步: File-->New--Project 第二步: 选择maven框架 第三步: 输入工程id ...
- 使用selenium时,使用从系统启动浏览器与通过自动化驱动方式启动浏览器控件ID不一样解决方法
最近遇到一个怪事,通过正常打开浏览器,按照正常的web登录然后点击进入系统流程,将各控件的ID识别成功,然后使用 python3+selenium写好脚本,高高兴兴的用脚本跑时老是提示找不到控件,然后 ...
- 【Linux基础】VM使用
VM三种联网方法和原理 (1)Bridged桥接 使用VMnet0虚拟交换机,此时虚拟机相当与网络上的一台独立计算机与主机一样,拥有一个独立的IP地址,所有机器均可互访,可以联网.使用桥接方式,A,A ...
- Codeforces Round #542 C. Connect 搜索
C. Connect time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- C#反射の反射泛型
C#反射の反射详解(点击跳转)C#反射の反射接口(点击跳转)C#反射反射泛型接口(点击跳转)C#反射の一个泛型反射实现的网络请求框架(点击跳转) 接上篇. 自定义一个泛型类(继承于接口) public ...
- 为什么黑客都不用鼠标?你听说过Linux吗?
为什么黑客都不用鼠标?你听说过Linux吗? 微软和它的朋友们的如意算盘. 下面来看看微软的收入是怎么来的.首先,Windows系列操作系统,一个就是 800+RMB,每次升级又是几乎同样的价钱.Wi ...
- 使用readAsDataURL方法预览图片
使用FileReader接口的readAsDataURL方法实现图片的预览. 在FileReader出现之前,前端的图片预览是这样实现的:把本地图片上传到服务器,服务器把图片地址返回,并把它替换到图片 ...