2011-05-22 13 views
2

私は私が何をしたいのですがどのようなDjangoのサブクエリの問題「サブクエリが複数の1行を返す」

class City(models.Model): 
    name = models.CharField(max_length=200, blank=False) 
    country = models.ForeignKey(Country,unique=False,null=False) 

    def __unicode__(self): 
     return self.name 

    class Meta: 
     ordering = ['name']   

class County(models.Model): 
    name = models.CharField(max_length=500, blank=False) 
    city = models.ForeignKey(City,unique=False,null=False) 

    def __unicode__(self): 
     return self.name 

    class Meta: 
     ordering = ['name'] 

class District(models.Model): 
    name = models.CharField(max_length=500, blank=False) 
    county = models.ForeignKey(County,unique=False,null=False) 

    def __unicode__(self): 
     return self.name 

    class Meta: 
     ordering = ['name'] 

のような3つの関連のモデルを持っているが、指定都市のためのすべてのDistrictsを得ています。 私が試した:

District.objects.all().filter(county = County.objects.all().filter(city=City.objects.filter(id=4))) 

をしかし、それはOperationalError: (1242, 'Subquery returns more than 1 row')

のようなエラーを与えるあなたが私に私はジャンゴでこのクエリをachiveすることができますどのように任意のアイデアを与えることはできますか?

ありがとうございました

答えて

1

私はそのようなやり方で何かを複雑にしているのか分かりません。あなたはこの方法ですべてのDistrictsを得ることができ、モデルCityの特定のインスタンスcityについては

:あなたはの線に沿って何かで逃げることができ

District.objects.filter(county__city=city)

あなたはこれを通過することができますDjangoドキュメンテーションのLookups that span relationshipsというセクションでは、同様の検索クエリをどのように達成できるかについて説明しています。

+0

ありがとうございました!私は間違いなくそのドキュメントを読むでしょう。 – brsbilgic

関連する問題