django和pandas的文档侧重于模型。我需要更好地了解如何跟踪涉及大熊猫的模型,视图和模板。
这是一个应用程序问题: 我试图在应用程序中显示移动电话津贴。
例如,每个移动连接都有强制性资费,还有四个可选的增值服务('VAS')。关税不能是增值税,但你可以有四次相同的增值税来提高你的免税额。
有一个表“关税”用于管理所有关税和增值税的详细信息。
对于每个呼叫线路标识符(移动电话连接),我们需要读取相关资费和四个VAS列之和的呼叫分钟数据,数据兆字节数和文本数量限额。
# models.py
class Tariff(models.Model):
tariff_name = models.CharField(max_length=200, unique=True, db_index=True)
minutes = models.IntegerField(blank=True, null=True,)
texts = models.IntegerField(blank=True, null=True,)
data = models.FloatField(null=True, default=0)
is_tariff_not_VAS = models.BooleanField(default=True)
class CallLineIdentifiers(models.Model):
mobile_tel_number = models.CharField(max_length=11, blank=False, null=False, db_index=True)
tariff = models.ForeignKey(Tariff, related_name = 'tariffName' )
vas_1 = models.CharField(max_length=100, blank=False, null=False, default=0,)
vas_2 = models.CharField(max_length=100, blank=False, null=False, default=0,)
vas_3 = models.CharField(max_length=100, blank=False, null=False, default=0,)
vas_4 = models.CharField(max_length=100, blank=False, null=False, default=0,)
到目前为止,这么好。我可以渲染一个html页面,显示基于主要关税的移动设备津贴。 如果我想要包括VAS津贴,事情会更棘手。您不能只让每个VAS的外键返回到关税表。
但也许,是否有解决问题的django模型重新规范?
我之前使用过Pandas,这个问题 - 但是在django之外。
这在大熊猫中起作用,我在其中加入了一个用于呼叫行标识符的表格,其中包含每个关税和VAS的副本,如:
import pandas as pd
# df = a dataframe of call line identifiers, containing telephone number
# and the names of any 'Tariff', 'VAS ONE', 'VAS TWO', 'VAS THREE','VAS FOUR'
# that are assigned to that mobile.
# tandv = dataframe of tariff and vas with attributes, where
# 'Tariff' is unique primary key and the name of each tariff or VAS.
tariff_allowance = pd.merge(df, tandv, on 'Tariff')
v1_allowance = pd.merge(df, tandv, left_on = 'VAS ONE', right_on = 'Tariff')
v2_allowance = pd.merge(df, tandv, left_on = 'VAS TWO', right_on = 'Tariff')
v3_allowance = pd.merge(df, tandv, left_on = 'VAS THREE', right_on = 'Tariff')
v4_allowance = pd.merge(df, tandv, left_on = 'VAS FOUR', right_on = 'Tariff')
allow = tariff_allowance.merge(v1_allowance,on="cli")
.merge(v2_allowance,on="cli")
.merge(v3_allowance,on="cli")
.merge(v4_allowance,on="cli")
# then, sum calls, data, texts attributes.
# keep only the necessary columns.
# gives us an dataframe: "CLIs_with_allowances"
我的pandas在django模型中应该看起来像什么?
如何从结果数据框“CLIs_with_allowances”到html页面?
谢谢。