我可以将模型字段基于其他字段吗?例如:
class Foo(models.Model):
x = models.PositiveSmallIntegerField()
y = models.PositiveSmallIntegerField()
z = models.PositiveSmallIntegerField()
score = models.PositiveSmallIntegerField(default=x+y+z)
Run Code Online (Sandbox Code Playgroud)
小智 10
这个怎么样?
class Foo(models.Model):
x = models.PositiveSmallIntegerField()
y = models.PositiveSmallIntegerField()
z = models.PositiveSmallIntegerField()
@property
def score(self):
return self.x + self.y + self.z
Run Code Online (Sandbox Code Playgroud)
关于模型方法的官方文档在这里
是的,处理此问题的最佳方法是覆盖save模型的方法
class Foo(models.Model):
x = models.PositiveSmallIntegerField()
y = models.PositiveSmallIntegerField()
z = models.PositiveSmallIntegerField()
score = models.PositiveSmallIntegerField()
def save(self, *args, **kwargs):
self.score = self.x + self.y + self.z
super(Foo, self).save(*args, **kwargs) # Call the "real" save() method.
Run Code Online (Sandbox Code Playgroud)
确保您负责必要的验证.
更多相关内容:官方文档
| 归档时间: |
|
| 查看次数: |
2223 次 |
| 最近记录: |