【发布时间】:2016-07-21 01:33:09
【问题描述】:
是否可以让一个模型属性依赖于另一个属性?在我的例子中,模型Job 中有一个has_translator 属性。当且仅当translator 不是Null 时,我希望此属性为True。
我正在考虑覆盖Job 类的save 方法或创建一个新的方法属性has_translator,这可能不是最好的方法。
有an answer 谈论覆盖save 方法,但我不确定为什么在这种情况下调用super,所以我不确定是否应该使用它。
class Job(models.Model):
customer = models.ForeignKey(User, related_name='customer')
translator = models.ForeignKey(User, related_name='freelancer',null=True)
description = models.TextField()
language_tuple = models.ForeignKey(LanguageTuple,related_name='language_tuple')
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
is_active = models.BooleanField(default=False)
has_translator = # If translator is not None/Null, then True else False
【问题讨论】:
-
你真的需要一个存储在数据库中的字段吗?为什么不只是模型上的一个属性?
-
super方法被调用以完成其余的工作。请注意链接上的self.subject_init = self.subject_initials()应该修改self obj。修改后的 self 被传递给 super 方法。