CRM--admin組件
阿新 • • 發佈:2019-04-11
let hda rip .py 字段 lac digi kconfig ces
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組件