我有以下模型:
class Indicator(models.Model):
name = models.CharField(max_length=200)
category = models.ForeignKey(IndicatorCategory)
weight = models.IntegerField()
industry = models.ForeignKey(Industry)
def __unicode__(self):
return self.name
class Meta:
ordering = ('name',)
class IndicatorRatingOption(models.Model):
indicator = models.ForeignKey(Indicator)
description = models.TextField()
value = models.FloatField(null=True)
def __unicode__(self):
return self.description
class Rating(models.Model):
product = models.ForeignKey(Product, null=True)
company = models.ForeignKey(Company, null=True)
rating_option = models.ForeignKey(IndicatorRatingOption)
value = models.IntegerField(null=True)
我需要做的是获取两家公司的所有公司评级选项,但不要让它们在指标上重叠 (rating.rating_option.indicator
)。如果有冲突,公司“a”总是会胜过公司“b”。我该怎么做?
最佳答案
这个有效:
Rating.objects.filter(company__in=[company_a, company_b]).distinct()
(原始答案)
你试过吗
IndicatorRatingOptions.objects.filter(company__in=[company_a, company_b]).distinct()
?
关于python - 在 Django 中,我有一个复杂的查询,我只需要通过外键获取唯一值,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3323591/