2010-07-24 5 views
5

Aşağıdaki modelleri var:Django'da, sadece bir yabancı anahtar aracılığıyla sadece benzersiz değerlere ihtiyaç duyduğum karmaşık bir sorgum var, bu mümkün mü?

 
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) 

Ne yapmak gerek onların Göstergeleri (rating.rating_option.indicator) üzerine üst üste kalmadan iki şirketin şirket değerlendirmesi tüm seçenekleri olsun. Bir ihtilaf varsa, şirket 'a' her zaman şirket b 'den kazanır. Bunu nasıl yaparım?

cevap

3

Bu çalışır:

Rating.filter(company__in=[company_a, company_b]).distinct() 

(Orjinal cevap)

Eğer

IndicatorRatingOptions.filter(company__in=[company_a, company_b]).distinct() 

denediniz mi?

İlgili konular