首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建与模型相关联的“列表”的最佳方式是什么?

创建与模型相关联的“列表”的最佳方式是什么?
EN

Stack Overflow用户
提问于 2021-09-05 17:53:50
回答 1查看 42关注 0票数 0

我希望能够在我的模型中将公司名称与“里程碑”百分比列表相关联,以便计算每家公司离最近的里程碑有多远。

例如:

代码语言:javascript
运行
复制
List_Of_Milestones = [5, 10, 15, 20, 25]
Current_Progress = 9.5%

示例输出=“公司A离10%的里程碑差0.5%,比5%的里程碑高4.5%。”

从Python的角度来看,逻辑很简单,但我无法理解如何在模型设置中创建它,并允许用户设置自己的里程碑列表。

EN

回答 1

Stack Overflow用户

发布于 2021-09-05 18:31:55

我会从两个模型开始:CompanyMilestone

代码语言:javascript
运行
复制
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百分比值,它将返回增量。然后将其分解为一个简单的示例字符串,但您可能希望对其进行配置以满足您自己的表示要求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69065916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档