CRM--admin组件
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组件的更多相关文章
- day 65 crm(2) admin源码解析,以及简单的仿造admin组件
前情提要: crm中的admin组件重写. 一:admin的autodiscover 作用:实现扫面该项目中的所有的admin 1:执行顺序-> 按照注册的顺序执行 二:单例模式 1:普通案例的 ...
- day 64 crm项目(1) admin组件的初识别以及应用
前情提要: 今天进入项目学习阶段,crm 一个又老又土又实用的入门项目 一:django回顾 二:事前准备 1:首先创建django项目 2:在model中创建数据 from django.db im ...
- Django admin 组件 原理分析与扩展使用 之 sites.py (一)
一 . 前言 Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). 本篇文章通过 admin源码 简单分析admin 内部原理 ,扩展使用方式,为以后进行定制和自 ...
- Django-CRM项目学习(一)-admin组件
开始今日份整理 1.admin组件使用 1.1 创建django项目以及开启APP01 略 1.2 创建类 使用django自带的sqlite3的小型文件型的数据库 注:使用sqlite3类型的数据库 ...
- Django admin组件使用
ADMIN 组件 介绍 admin 组件实现了更方便的WEB后台数据管理方式 settings.py 中第一个组件就是 : INSTALLED_APPS = [ 'django.contrib.adm ...
- Django admin组件源码流程
admin 组件 Django 自带的用户后台组件 用于用户便携的操作 admin 组件核心 启动 注册 设计url 启动核心代码 每个app 通过 apps.py 扫描 admin.py 文件 并执 ...
- python框架之Django(13)-admin组件
使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLED_APPS ...
- admin组件详解
admin组件详解 先根据admin组件启动流程复习下django项目启动至请求过来发生的事 1将admin组件注册进app 2django项目启动 3在运行到定制的admin时执行其下面的apps文 ...
- 模拟admin组件自己开发stark组件之创建篇
admin组件 admin组件为我们提供了针对django管理页面 我们先简短来看下django的admin组件的启动流程,注册流程,url匹配过程 启动注册 1. 扫描所有应用下的注册了应用中的ad ...
- Django 之 admin组件使用&源码解析
admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED ...
随机推荐
- 关于Unity单个对象多个脚本的Update调用的时序问题
先说几句废话, 最近在研究Unity, 这玩意用起来比较简单, 而且商店里还有各种插件, 初学者也能轻松拼凑出一个像模像样的游戏(顺便说一句,自己做着玩就无所谓了,但随便拼凑个辣鸡丢出来骗钱就不好了) ...
- Scala编程 摘录
有件你会注意到的事情是,几乎所有的 Scala 的控制结构都会产生某个值.这是函数式语言所采用的方式,程序被看成是计算值的活动,因此程序的控件也应当这么做.你也可以把这种方式看做早已存在于指令式语言中 ...
- OpenCV中 常用 函数 的作用
1.CV_Assert函数作用: CV_Assert()若括号中的表达式值为false,则返回一个错误信息.
- GNU C和C99标准中的可变参数宏(variadic macros)
用可变参数宏(variadic macros)传递可变参数表你可能很熟悉在函数中使用可变参数表,如: void printf(const char* format, …); 直到最近,可变参数表还是只 ...
- 如何将composer设置为全局变量?
全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了. Mac 或 Linux 系统: 打开命令行窗口并执行如下命 ...
- JAVA的单元测试技术
1.选定开发工具 选定eclipse为开发工具,用JAVA进行编程,实现此次测试. 2.编写需要被测试的java类 此次我们以顺序查找与二分查找法为例. package com.mycode.tuil ...
- JS和CSS交互的方法
用JavaScript获取伪元素(pseudo-element)属性 var color=window.getComputedStyle( document.querySelector('.ele ...
- Oracle数据库中OVER()函数的了解
1.over函数介绍: 开窗函数,Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行. ...
- 关于各种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 ...
- frist Django app — 四、 完善View
上一篇已经完成了polls的基本功能,接下来完善剩下的vote功能和并使用generic views改进请求处理view.包含表单的简单运用和前后台参数传递. 目录 vote:完善投票功能 gener ...