天天看點

第43章 Django的分析圖表,靓……

在很多企業,在年底總結時,一般都會定好來年的銷售任務并配置設定到銷售區域中。銷售區域負責人領到任務後,會分解到每個銷售人員身上。

任務分解按日、按周太短,按年、按季太長,按月剛剛好,比較符号實際情況。

銷售額,在實際系統中是通過彙總銷售訂單總額後插入到統計表中的。在這套練手的銷售管理系統中,沒有涉及到訂單這一塊,咱用手工錄入也是可以的。

43.1 界面效果

有關區域任務的界面這裡就不提供了,反正都是按模闆自動生成的。重點介紹下銷售統計這個界面。它是圖形化的,令人耳目一新的界面。有了它,老闆做夢都會笑被笑醒,如果銷售額與日俱增、突飛猛進的話。

第43章 Django的分析圖表,靓……

43.2 資料字典

區域任務表(Task)

第43章 Django的分析圖表,靓……

43.3 建立應用

建立task應用并內建到…(你懂得)。有關銷售目标功能涉及到的圖示,我找到了一些,現提供給你參考。

# 圖示設定

SIMPLEUI_ICON = {

……

'銷售目标': 'fas fa-chart-bar',

'區域任務': 'fas el-icon-news',

'個人任務': 'fas el-icon-wallet',

'銷售統計': 'fas el-icon-s-data',

}
           

在task/apps.py檔案中新增如下内容。

from django.apps import AppConfig

class TaskConfig(AppConfig):

name = 'task'

verbose_name = '銷售目标'

在task/__init__.py檔案中新增如下内容。

default_app_config = 'task.apps.TaskConfig'
           

43.4 區域任務

在models.py的内容裡,列出了銷售統計(SaleSum),主要目的是為了能将它納入到背景管理中。有了它,才能擁有"銷售統計"的二級菜單,否則了無蹤迹。

from django.db import models

# 區域任務

class Task(models.Model):

region = models.CharField(max_length=64, verbose_name='區域', null=False, blank=False)

year = models.IntegerField(verbose_name='年份', null=False, blank=False)

# 銷售目标

Jan_task = models.DecimalField(verbose_name='1月', decimal_places=2, max_digits=9)

Feb_task = models.DecimalField(verbose_name='2月', decimal_places=2, max_digits=9)

Mar_task = models.DecimalField(verbose_name='3月', decimal_places=2, max_digits=9)

Apr_task = models.DecimalField(verbose_name='4月', decimal_places=2, max_digits=9)

May_task = models.DecimalField(verbose_name='5月', decimal_places=2, max_digits=9)

Jun_task = models.DecimalField(verbose_name='6月', decimal_places=2, max_digits=9)

Jul_task = models.DecimalField(verbose_name='7月', decimal_places=2, max_digits=9)

Aug_task = models.DecimalField(verbose_name='8月', decimal_places=2, max_digits=9)

Sep_task = models.DecimalField(verbose_name='9月', decimal_places=2, max_digits=9)

Oct_task = models.DecimalField(verbose_name='10月', decimal_places=2, max_digits=9)

Nov_task = models.DecimalField(verbose_name='11月', decimal_places=2, max_digits=9)

Dec_task = models.DecimalField(verbose_name='12月', decimal_places=2, max_digits=9)

# 實際銷售額

Jan_sale = models.DecimalField(verbose_name='1月', decimal_places=2, max_digits=9, default=0)

Feb_sale = models.DecimalField(verbose_name='2月', decimal_places=2, max_digits=9, default=0)

Mar_sale = models.DecimalField(verbose_name='3月', decimal_places=2, max_digits=9, default=0)

Apr_sale = models.DecimalField(verbose_name='4月', decimal_places=2, max_digits=9, default=0)

May_sale = models.DecimalField(verbose_name='5月', decimal_places=2, max_digits=9, default=0)

Jun_sale = models.DecimalField(verbose_name='6月', decimal_places=2, max_digits=9, default=0)

Jul_sale = models.DecimalField(verbose_name='7月', decimal_places=2, max_digits=9, default=0)

Aug_sale = models.DecimalField(verbose_name='8月', decimal_places=2, max_digits=9, default=0)

Sep_sale = models.DecimalField(verbose_name='9月', decimal_places=2, max_digits=9, default=0)

Oct_sale = models.DecimalField(verbose_name='10月', decimal_places=2, max_digits=9, default=0)

Nov_sale = models.DecimalField(verbose_name='11月', decimal_places=2, max_digits=9, default=0)

Dec_sale = models.DecimalField(verbose_name='12月', decimal_places=2, max_digits=9, default=0)

create_time = models.DateTimeField(verbose_name='建立時間', auto_now=True)

class Meta:

verbose_name = "任務"

verbose_name_plural = "區域任務"

# 個人任務

class MyTask(models.Model):

class Meta:

verbose_name = "任務"

verbose_name_plural = "個人任務"

# 銷售統計

class SaleSum(models.Model):

permissions = ('銷售統計',)

class Meta:

verbose_name = "銷售統計"

verbose_name_plural = "銷售統計"
           

單有model,單有資料。如果想在頁面上有一番作為的話,還需要在ModelAdmin中進行注冊。有關ModelAdmin的注冊内容,請見下一章。