I have the following models:
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(开发者_如何学CIndicatorRatingOption)
value = models.IntegerField(null=True)
What I need to do is get all of the company rating options of two companies without having them overlap on their Indicators (rating.rating_option.indicator
). If there's a conflict, company 'a' would always win over company 'b'. How do I do this?
This works:
Rating.objects.filter(company__in=[company_a, company_b]).distinct()
(Original answer)
Did you try
IndicatorRatingOptions.objects.filter(company__in=[company_a, company_b]).distinct()
?
精彩评论