gpt4 book ai didi

django - Django 模型中的派生属性

转载 作者:行者123 更新时间:2023-12-04 16:50:00 25 4
gpt4 key购买 nike

我有这两个模型:

class Product(models.Model):

category = models.ForeignKey('Category')

name = models.CharField(max_length=60, verbose_name=u'نام کالا')
price = models.PositiveIntegerField(verbose_name=u'قیمت')
image = models.ImageField(upload_to='products_images', verbose_name=u'عکس')
#score ???

def get_score(self):
pass


class Review(models.Model):

product = models.ForeignKey('Product')

rating = models.PositiveSmallIntegerField(max_length=1, verbose_name=u'امتیاز')

我怎样才能为 Product 派生一个名为 score 的属性,所以当我调用 product.score 时,它会调用 get_score 函数并返回根据 计算的平均分数>审查模型?
例如,如果一个产品有两条评分分别为 4 和 2 的评论,我希望 product.score 返回 3。

最佳答案

如果您将方法命名为score,您可以使用一个属性:

@property
def score(self):
pass

这意味着 product.score 将返回该方法的结果。然而,这一切都发生在 Django 的 ORM 之外,因此它不会被识别为模型中的字段。尽管如此,它仍可在您的 Python 代码和模板中使用,您可以使用 {{ product.score }}

关于django - Django 模型中的派生属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com