Django - 什么是最佳实践 - 计算字段值

Cha*_*has 5 python django

我在 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)

spo*_*rad 1

它们应该作为方法(函数)进入模型,此处的文档https://docs.djangoproject.com/en/1.8/topics/db/models/#model-methods,复制下面的示例

\n\n
from 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)\n
Run Code Online (Sandbox Code Playgroud)\n\n

“这是一项很有价值的技术,可以将业务逻辑保留在模型的一个位置 \xe2\x80\x93 中。”

\n