我希望能够在我的模型中将公司名称与“里程碑”百分比列表相关联,以便计算每家公司离最近的里程碑有多远。
例如:
List_Of_Milestones = [5, 10, 15, 20, 25]
Current_Progress = 9.5%示例输出=“公司A离10%的里程碑差0.5%,比5%的里程碑高4.5%。”
从Python的角度来看,逻辑很简单,但我无法理解如何在模型设置中创建它,并允许用户设置自己的里程碑列表。
发布于 2021-09-05 18:31:55
我会从两个模型开始:Company和Milestone。
from django.contrib.auth.models import User
class Milestone(models.Model):
company = models.ForeignKey(on_delete=models.CASCADE)
title = models.CharField(max_length=20)
description = models.TextField()
percentage = models.DecimalField(max_digits=4, decimal_places=1)
class Company(models.Model):
name = models.CharField(max_length=30)
milestone_progress = models.DecimalField(max_digits=4, decimal_places=1)
@property
def milestone_status(self):
try:
next_milestone = self.milestone_set.filter(percentage__gt=milestone_progress).order_by('percentage').first()
return "This company is {} away from their next milestone".format(next_milestone.percentage-self.milestone_progress)
except:
return None在这两个模型之间建立了外键关系,这允许公司具有许多里程碑。
通过使用Company模型中的“proxy”字段,您可以检索给定公司的所有里程碑,并将其与公司的milestone_progress字段进行比较。
最后,通过从进度中减去next_milestone百分比值,它将返回增量。然后将其分解为一个简单的示例字符串,但您可能希望对其进行配置以满足您自己的表示要求。
https://stackoverflow.com/questions/69065916
复制相似问题