我在 Django 中有一个模型,它有三个字段,这些字段是根据一个字段的值计算的。特别是其中一个字段的值将需要查询另一个表中的记录(我将使用最后十个值的平均值)。
我不确定将这个功能放在模型类中、模型表单中、视图中的最佳位置是什么?
任何建议将不胜感激 - 谢谢
该模型如下所示:
class slide_library(models.Model):
slide_name = models.Charfield(max_length = 6, primary_key = True)
reference_value = models.FloatField(default= '0')
last_mean = models.FloatField(default= '0')
esd = models.FloatField(default= '0')
criteria = models.Charfield(max_length= 10)
Run Code Online (Sandbox Code Playgroud)
它们应该作为方法(函数)进入模型,此处的文档https://docs.djangoproject.com/en/1.8/topics/db/models/#model-methods,复制下面的示例
\n\nfrom django.db import models\n\nclass Person(models.Model):\n first_name = models.CharField(max_length=50)\n last_name = models.CharField(max_length=50)\n birth_date = models.DateField()\n\n def baby_boomer_status(self):\n "Returns the person\'s baby-boomer status."\n import datetime\n if self.birth_date < datetime.date(1945, 8, 1):\n return "Pre-boomer"\n elif self.birth_date < datetime.date(1965, 1, 1):\n return "Baby boomer"\n else:\n return "Post-boomer"\n\n def _get_full_name(self):\n "Returns the person\'s full name."\n return \'%s %s\' % (self.first_name, self.last_name)\n full_name = property(_get_full_name)\nRun Code Online (Sandbox Code Playgroud)\n\n“这是一项很有价值的技术,可以将业务逻辑保留在模型的一个位置 \xe2\x80\x93 中。”
\n