2016-10-20 14 views
0

このようにデータベースをフィルタリングしたいと思います。Django Select関連

qs = profile.objects.filter().select_related('profile_detail').select_related('location') 

ここで、locationはprofile_detailモデルの外部キーです。だから、どのように私は、そのクエリ

class Location(models.Model): 
     place = models.CharField(max_length=128) 

class ProfileDetail(models.Model): 
    location = models.ForiegnKey(Location) 

    class Profile(models.Model): 
     detail = models.ForeignKey(ProfileDetail) 

答えて

2

を行うことができますあなたは__

https://docs.djangoproject.com/en/1.10/topics/db/queries/#lookups-that-span-relationships

qs = profile.objects.filter().select_related('detail__location') 

関連する検索クエリの構文を使用することができますし、それはずdetailないprofile_detailProfileにあなたのフィールドと同じように

+0

ありがとう...その作業 – Thameem

+0

ここではフィールド名の代わりに関連名を使用できますか? detail = models.ForeignKey(ProfileDetail、related_name = "pdetail") qs = profile.objects.filter()。select_related( 'pdetail__location') – Thameem

+1

@Thameem関連の名前は、逆引き参照で使用されます。たとえば、 'profie_detail'オブジェクトがある場合です。次に、この 'profile_detail.pdetail.all()'を実行して、この 'profile_detail'ですべてのプロファイルを取得する –

関連する問題