Django为字段设置了一个公式

2024-05-21 03:14:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在模型中设置一个字段的手动算术公式,公式根据模型的对象而变化,由某个超级用户设置,并根据外部模型名进行设置。在

class Strategy(models.Model):
 name = models.CharField(max_length=30, unique=True)

class Line(models.Model):
 strategy = models.ForeignKey(Strategy,on_delete=models.CASCADE)
 startvalue = models.FloatField(default=0)
 endvalue = models.FloatField(null=True,blank=True)
 target = models.FloatField(default=0)
 alpha = models.FloatField(default=0)

所以,这里会有很多策略,对于每一个策略,我希望超级用户根据startvalue,endvalue,target映射一个alpha的算术公式,会有很多策略,因此会有很多alpha的公式

例如,如果一个策略是

s1 then alpha = 100*(startvalue+endvalue*target)

s2 then alpha = startvalue-endvalue*target

像这样,超级用户需要通过GUI为一个策略设置alpha公式,这样所有使用该策略的行都有alpha的公式。在

如何实施?请帮帮我,我被困在这里两天多了。在


Tags: 用户模型alphatruedefaulttargetmodels算术
2条回答

请在Django set manual arithmetic formula for a field查看我的答案

您需要创建一个公式的meta,并具有在运行时执行它们的属性。在

import operator
operator_map = {"+": operator.add, "-":operator.sub...}
class ModelB:
    _operator <- while will store a raw operator
    @property
    def operator(self):
        return operator_map[self._operator]

相关问题 更多 >