我想在模型中设置一个字段的手动算术公式,公式根据模型的对象而变化,由某个超级用户设置,并根据外部模型名进行设置。在
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的公式。在
如何实施?请帮帮我,我被困在这里两天多了。在
请在Django set manual arithmetic formula for a field查看我的答案
您需要创建一个公式的meta,并具有在运行时执行它们的属性。在
您可以为ModelAdmin添加自定义表单: https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
然后重写表单中的
clean
方法来检查策略字段并设置alpha:https://docs.djangoproject.com/en/2.0/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other
相关问题 更多 >
编程相关推荐