Python - 带有外键的两个字段的产品

时间:2018-04-04 12:03:32

标签: python django django-models django-queryset

我想知道如何计算两个字段的乘积:FeatureInfo中的得分和Feature中的比率。

当我在管理员面板中保存我的FeatureInfo时,它没有更新我的字段总数。如何更新字段总数?

models.py

class Feature(models.Model):
    name = models.CharField(max_length=255, unique=True, null=True)
    ratio = models.IntegerField(null=True)

class FeatureInfo(models.Model):
    name = models.CharField(max_length=255, unique=True, null=True)
    score = models.IntegerField(null=True)
    feature = models.ForeignKey(Feature, on_delete="CASCADE")
    _total = models.IntegerField(db_column='total')

    @property
    def total(self):
        return self.score * self.feature.score

admin.py

@admin.register(FeatureInfo)
class FeatureInfoAdmin(admin.ModelAdmin):
    fields = ('id', 'feature', 'score', 'name', 'total')

    readonly_fields = ('id', 'total')
    list_filter = ('feature',)
    list_display = list_filter

1 个答案:

答案 0 :(得分:0)

你可能想要一个房产。

class FeatureInfo(models.Model):
    name = models.CharField(max_length=255, unique=True, null=True)
    score = models.IntegerField(null=True)
    feature = models.ForeignKey(Feature, on_delete="CASCADE")

    @property
    def total(self):    
        return self.score * self.feature.ratio