admin组件使用

1、创建一个Django项目

2、在models里面创建表

class Publish(models.Model):
name = models.CharField(max_length=32)
email = models.EmailField()
addr = models.CharField(max_length=64) def __str__(self):
return self.name class Author(models.Model):
name = models.CharField(max_length=32)
age = models.IntegerField() def __str__(self):
return self.name class Book(models.Model):
title = models.CharField(max_length=32)
publishDate = models.DateField()
price = models.DecimalField(max_digits=6, decimal_places=2)
publsher = models.ForeignKey(to="Publish", on_delete=models.CASCADE)
authors = models.ManyToManyField(to="Author") def __str__(self):
return self.title

3、生成这些表

python manage.py makemigrations
python manage.py migrate

4、 创建一个超级用户

python manage.py createsuperuser

5、浏览器输入 127.0.0.1:8000/admin  ,用超级用户登录,就可以进入界面

使用管理工具

1、构建基本表

在admin.py文件下操作

from django.contrib import admin
from app01 import models
from app01.models import Book, Publish, Author # 应用模块 # Register your models here. class BookConfig(admin.ModelAdmin):
list_display = ["title", "publishDate", "price", "publsher"] # 定义显示内容 class PublishConfig(admin.ModelAdmin):
list_display = ["name", "email", "addr"] class AuthoConfig(admin.ModelAdmin):
list_display = ["name", "age"] admin.site.register(Book, BookConfig) # 注册页面
admin.site.register(Publish, PublishConfig)
admin.site.register(Author, AuthoConfig)

 ModelAdmin中的可定制功能

1. list_display,列表时,定制显示的列。

默认只显示一列,可以自定义显示多列
class BookConfig(admin.ModelAdmin):
list_display = ["title", "publishDate", "price", "publsher"] # 定义显示内容,不能显示多对多

2. list_display_links,列表时,定制列可以点击跳转。

list_display_links = ["name", "email", "addr"]

3、定制多对多的列

class BookConfig(admin.ModelAdmin):

    def show_author(self, obj):
return ' | '.join([obj.name for obj in obj.authors.all()])
# obj.authors.all() 拿到一个Authors表的QuerySet,用列表推导式拿到name字段,用join进行字符串拼接
list_display = ["title", "publishDate", "price", "publsher", "show_author"] # 定义显示内容

4、搜索框

search_fields = ["title",  "price"]

5、定义action里面的函数

  分三步

def func(self, request, queryset):  # 1、定义一个函数,queryset接收的是勾选的对象
queryset.update(price=0) func.short_description = "重置价格为0" # 2、给这个函数命名,“价格初始化”
actions = [func] # 3、 第三部就这么写

6、 分级过滤 (类似淘宝:“裤子,休闲,100-200,深圳发货” 多重分类筛选)

list_filter = ["publsher", "price", "state"]

CRM--admin组件的更多相关文章

  1. day 65 crm(2) admin源码解析,以及简单的仿造admin组件

    前情提要: crm中的admin组件重写. 一:admin的autodiscover 作用:实现扫面该项目中的所有的admin 1:执行顺序-> 按照注册的顺序执行 二:单例模式 1:普通案例的 ...

  2. day 64 crm项目(1) admin组件的初识别以及应用

    前情提要: 今天进入项目学习阶段,crm 一个又老又土又实用的入门项目 一:django回顾 二:事前准备 1:首先创建django项目 2:在model中创建数据 from django.db im ...

  3. Django admin 组件 原理分析与扩展使用 之 sites.py (一)

    一 . 前言 Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). 本篇文章通过 admin源码 简单分析admin 内部原理 ,扩展使用方式,为以后进行定制和自 ...

  4. Django-CRM项目学习(一)-admin组件

    开始今日份整理 1.admin组件使用 1.1 创建django项目以及开启APP01 略 1.2 创建类 使用django自带的sqlite3的小型文件型的数据库 注:使用sqlite3类型的数据库 ...

  5. Django admin组件使用

    ADMIN 组件 介绍 admin 组件实现了更方便的WEB后台数据管理方式 settings.py 中第一个组件就是 : INSTALLED_APPS = [ 'django.contrib.adm ...

  6. Django admin组件源码流程

    admin 组件 Django 自带的用户后台组件 用于用户便携的操作 admin 组件核心 启动 注册 设计url 启动核心代码 每个app 通过 apps.py 扫描 admin.py 文件 并执 ...

  7. python框架之Django(13)-admin组件

    使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLED_APPS ...

  8. admin组件详解

    admin组件详解 先根据admin组件启动流程复习下django项目启动至请求过来发生的事 1将admin组件注册进app 2django项目启动 3在运行到定制的admin时执行其下面的apps文 ...

  9. 模拟admin组件自己开发stark组件之创建篇

    admin组件 admin组件为我们提供了针对django管理页面 我们先简短来看下django的admin组件的启动流程,注册流程,url匹配过程 启动注册 1. 扫描所有应用下的注册了应用中的ad ...

  10. Django 之 admin组件使用&源码解析

    admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED ...

随机推荐

  1. 关于Unity单个对象多个脚本的Update调用的时序问题

    先说几句废话, 最近在研究Unity, 这玩意用起来比较简单, 而且商店里还有各种插件, 初学者也能轻松拼凑出一个像模像样的游戏(顺便说一句,自己做着玩就无所谓了,但随便拼凑个辣鸡丢出来骗钱就不好了) ...

  2. Scala编程 摘录

    有件你会注意到的事情是,几乎所有的 Scala 的控制结构都会产生某个值.这是函数式语言所采用的方式,程序被看成是计算值的活动,因此程序的控件也应当这么做.你也可以把这种方式看做早已存在于指令式语言中 ...

  3. OpenCV中 常用 函数 的作用

    1.CV_Assert函数作用: CV_Assert()若括号中的表达式值为false,则返回一个错误信息.

  4. GNU C和C99标准中的可变参数宏(variadic macros)

    用可变参数宏(variadic macros)传递可变参数表你可能很熟悉在函数中使用可变参数表,如: void printf(const char* format, …); 直到最近,可变参数表还是只 ...

  5. 如何将composer设置为全局变量?

    全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了. Mac 或 Linux 系统: 打开命令行窗口并执行如下命 ...

  6. JAVA的单元测试技术

    1.选定开发工具 选定eclipse为开发工具,用JAVA进行编程,实现此次测试. 2.编写需要被测试的java类 此次我们以顺序查找与二分查找法为例. package com.mycode.tuil ...

  7. JS和CSS交互的方法

    用JavaScript获取伪元素(pseudo-element)属性  var  color=window.getComputedStyle( document.querySelector('.ele ...

  8. Oracle数据库中OVER()函数的了解

    1.over函数介绍:      开窗函数,Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行. ...

  9. 关于各种O,DO/BO/DTO/VO/AO/PO

    阿里巴巴Java开发手册 链接:https://pan.baidu.com/s/11I9ViOrat-Bw_HA8yItXwA 密码:x5yi 2. DO/BO/DTO/VO/AO/PO PO(per ...

  10. frist Django app — 四、 完善View

    上一篇已经完成了polls的基本功能,接下来完善剩下的vote功能和并使用generic views改进请求处理view.包含表单的简单运用和前后台参数传递. 目录 vote:完善投票功能 gener ...