在Django中,我有一个复杂查询,只需要通过外键的唯一值,可以吗?
我有以下这些模型:
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'公司。请问我该怎么做呢?
1 个回答
5
这个可以用:
Rating.objects.filter(company__in=[company_a, company_b]).distinct()
(原始回答)
你试过
IndicatorRatingOptions.objects.filter(company__in=[company_a, company_b]).distinct()
吗?