1. 程式人生 > >CRM--admin組件

CRM--admin組件

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組件