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参数配置的更多相关文章

  1. django admin site配置(二)

    1. ModelAdmin.inlines 将有外键的子类包含进视图 ,实例: class Author(models.Model): name = models.CharField(max_leng ...

  2. 如何给django admin.py配置超级管理员?注册表格?

    admin.py是django给我们提供的功能非常强大的后台,况且支持拓展,,如果你要是觉得admin的后台不够牛逼你可以自己写一个!如何自己写一个后台,后面我有时间了会给大家更新!一起学习!一起进步 ...

  3. 【Django admin 中文配置】

    打开settings.py文件,找到语言编码.时区的设置项,将内容改为如下: [其中 zh-Hans是简体中文 zh-Hant是繁体中文] LANGUAGE_CODE = 'zh-Hans' # LA ...

  4. 01: 重写Django admin

    目录: 1.1 重写Django admin项目各文件作用# 1.2 重写Django admin用户认证 1.3 将要显示的表注册到我们自己的kind_admin.py中 1.4 项目首页:显示注册 ...

  5. Django之用户上传文件的参数配置

    Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model): title = models.CharField(max_length=128) # ...

  6. Django进阶Admin篇 - admin基本配置

    django admin 是django自带的一个后台app,提供了后台的管理功能. 基础知识点: 一.认识ModelAdmin 管理界面的定制类,如需扩展特定的model界面,需要从该类继承 二.注 ...

  7. Django admin 权威指南(一)

    版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...

  8. Django admin site(一)ModelAdmin Options

    Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 要使用admin,可以按照下面的步骤: 将'dj ...

  9. Django Admin 简单部署上线

    前言 打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用Django admin,默认的admin并不漂亮,于是我使用了这个django-suit插件来美化 如图: 是不是比原来的漂亮多了. ...

随机推荐

  1. c/c++ 线性表之单向链表

    c/c++ 线性表之单向链表 线性表之单向链表 不是存放在连续的内存空间,链表中的每个节点的next都指向下一个节点,最后一个节点的下一个节点是NULL. 真实的第一个节点是头节点,头节点不存放数据, ...

  2. centos下mysql授予权限提示ERROR 1133 (42000): Can't find any matching row in the user table

    错误: 给mysql对应的用户授予权限的时候提示报错: 解决方法: 后面才知道原来是同事这边新增了用户没有flush grant all privileges on *.* to 'user'@'%' ...

  3. 注入攻击(SQL注入)

    注入攻击是web安全领域中一种最为常见的攻击方式.注入攻击的本质,就是把用户输入的数据当做代码执行.这里有两个关键条件,第一是用户能够控制输入,第二个就是原本程序要执行的代码,将用户输入的数据进行了拼 ...

  4. LeetCode算法题-Ransom Note(Java实现)

    这是悦乐书的第212次更新,第225篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第80题(顺位题号是383).给定一个任意赎金票据字符串和另一个包含所有杂志字母的字符串 ...

  5. LeetCode算法题-Plus One(Java实现)

    这是悦乐书的第156次更新,第158篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第15题(顺位题号是66).给定一个非空数字数组来表示一个非负整数,并给其加1.该数组已 ...

  6. HBase数据库相关基本知识

    HBase数据库相关知识 1. HBase相关概念模型 l  表(table),与关系型数据库一样就是有行和列的表 l  行(row),在表里数据按行存储.行由行键(rowkey)唯一标识,没有数据类 ...

  7. 力扣算法题—050计算pow(x, n)

    #include "000库函数.h" //使用折半算法 牛逼算法 class Solution { public: double myPow(double x, int n) { ...

  8. Python学习之装饰器进阶

    函数知识回顾: 函数的参数分为:实参和形参. 实参:调用函数的时候传入的参数: 形参:分为3种(位置参数.默认参数.动态传参) 位置参数:必须传值 def aaa(a,b): print(a,b) a ...

  9. Java学习笔记(二)——类和对象

    [1]类是模子,确定对象将会拥有的特征(属性)和行为(方法). [2]类的特点:类是对象的类型: 具有相同属性和方法的一组对象的集合. [3]属性:对象具有的各种特征(每个对象的每个属性都拥有特定值) ...

  10. Druid、BoneCP、DBCP、C3P0等主流数据库对比

    关键功能 Druid BoneCP DBCP C3P0 Proxool JBoss LRU 是 否 是 否 是 是 PSCache 是 是 是 是 否 是 PSCache-Oracle-Optimiz ...