Django 模型 class 中的函数调用使用来自其他模型 class 的数据
Function calls in Django model class using data from other model class
我有两个模型 classes,我需要编写一些同时使用这两个模型的逻辑。不确定我应该在哪里添加这个逻辑,以及如何实现。这是一个高度简化的版本;
class Yacth(models.Model):
name = models.CharField(max_length=50)
adjuster = models.IntegerField(default=1)
class Result(models.Model):
yacht = models.ForeignKey(Yacht, on_delete=models.CASCADE)
result = models.DecimalField(null=TRUE)
adjusted_result = # I want to populate this field with adjusted result
def result_adjusted(self):
a = self.result
b= self.yacht.adjuster # can I call values from another class like this?
adjusted_result = (a * b)
return adjusted_result
我需要将结果乘以调整器,如上面的简单草图方法 (result_adjusted) 所示。我如何实现这一点,以便使用方法 return?
填充模型 class 中的调整结果
谢谢
是的,您可以通过外键访问其他模型。
你可以像下面这样使用@属性:
class Result(models.Model):
yacht = models.ForeignKey(Yacht, on_delete=models.CASCADE)
result = models.DecimalField()
@property
def adjusted_result(self):
return self.result * self.yacht.adjuster
之后您就可以访问 Result.objects.first().adjusted_result
查看官方 django 文档中的 @属性 用法:https://docs.djangoproject.com/en/3.2/topics/db/models/#model-methods
我有两个模型 classes,我需要编写一些同时使用这两个模型的逻辑。不确定我应该在哪里添加这个逻辑,以及如何实现。这是一个高度简化的版本;
class Yacth(models.Model):
name = models.CharField(max_length=50)
adjuster = models.IntegerField(default=1)
class Result(models.Model):
yacht = models.ForeignKey(Yacht, on_delete=models.CASCADE)
result = models.DecimalField(null=TRUE)
adjusted_result = # I want to populate this field with adjusted result
def result_adjusted(self):
a = self.result
b= self.yacht.adjuster # can I call values from another class like this?
adjusted_result = (a * b)
return adjusted_result
我需要将结果乘以调整器,如上面的简单草图方法 (result_adjusted) 所示。我如何实现这一点,以便使用方法 return?
填充模型 class 中的调整结果谢谢
是的,您可以通过外键访问其他模型。 你可以像下面这样使用@属性:
class Result(models.Model):
yacht = models.ForeignKey(Yacht, on_delete=models.CASCADE)
result = models.DecimalField()
@property
def adjusted_result(self):
return self.result * self.yacht.adjuster
之后您就可以访问 Result.objects.first().adjusted_result
查看官方 django 文档中的 @属性 用法:https://docs.djangoproject.com/en/3.2/topics/db/models/#model-methods