2016-05-03 10 views
1

これは私のフォローモデルです。ユーザIDを考えると、私はインナーに基づいて、指定されたユーザーは、次のされ、ユーザーのすべてを取得したい私は、すべての以下を探していますことを考えると、これは、この生のSQLクエリを用いて達成されるTARGET_IDのdjangoへのCovert SQL ORM(内部結合サブ選択)

class Follow(Activity, BaseModel): 
    user = models.ForeignKey(
     settings.AUTH_USER_MODEL, related_name='following') 
    target = models.ForeignKey(
     settings.AUTH_USER_MODEL, related_name='follower') 

の参加user.id 1

SELECT * 
FROM (SELECT target_id 
     FROM auth_user 
       INNER JOIN api_follow 
        ON auth_user.id = api_follow.user_id 
     WHERE api_follow.user_id = 1) AS targets 
     INNER JOIN auth_user 
      ON targets.target_id = auth_user.id; 

これをdjangos ormで効率的に行うにはどうすればよいですか?私は自分のUserSerializerに渡すことができるようにUserクエリーセットが必要です。

答えて

0

与えられたユーザIDのすべての信者の検索:

User.objects.filter(follower__user=id)

+0

私のユーザーの信者であるユーザのクエリセットを返し、私は私のユーザーは、次のされ方を取得したいです – user1152226