我希望将我的网站与 Salesforce 连接,并有一个视图显示用户在 Salesforce 中的活动细分,然后根据分配给每个活动的权重计算总分。我正在使用 Django-Salesforce 来启动连接并扩展 Activity 模型,但我不确定我是否正确设置了 Activity 或OverallScore 类。
下面是我已经拥有的代码。根据我看到的其他类似问题,建议的结果似乎是自定义保存方法,但我担心我的数据库会很快变得庞大,因为连接每 5 分钟刷新一次。
我最大的问题是如何设置 Activity 类的“weighted_score”属性,因为我怀疑我目前所拥有的是否正确。
class Activity(salesforce.models.Model):
owner = models.ManyToManyField(Profile)
name = models.CharField(verbose_name='Name', max_length=264,
unique=True)
weight = models.DecimalField(verbose_name='Weight', decimal_places=2,
default=0)
score = models.IntegerField(verbose_name='Score', default=0)
weighted_score = weight*score
def __str__(self):
return self.name
class OverallScore(models.Model):
factors = models.ManyToManyField(Activity)
score = Activity.objects.aggregate(Sum('weighted_score'))
def __str__(self):
return "OverallScore"
理想的最终结果是每个登录的用户都能“实时”查看他们的活动分数和一个总分数,该分数每 5 分钟从 Salesforce 连接刷新一次,然后在一天结束时我会运行一个 cron 作业来保存一天结束的结果到数据库。