2017-02-24 5 views
3

次のモデルがあります。特定のclass_idが指定されているUserClassesからすべてを選択しようとしています。私は1つの結果を渡すことができますどのようにクエリーセットデータを別のクエリーに渡すdjango

users = UserClasses.objects.filter(class_id=data['class_id']) 
user_details = User.objects.filter(#get users.id from userclasses and compare here) 

:私は、結果

class UserClasses(models.Model): 
    class_id = models.ForeignKey(Class) 
    user = models.ForeignKey(User) 

これは私がすべてのUserオブジェクトを引くしようとしています私のDjangoのビューであるごとにユーザーデータを取得したいです別のものにクエリーセット?

答えて

5

djangoのvalues_listメソッドと組み合わされた__in演算子を使用して、必要な処理を実行できます。

users = UserClasses.objects.filter(class_id=data['class_id']) 
user_details = User.objects.filter(id__in=users.values_list('id', flat=True)) 
+0

Sweet!私はちょうどそれを試みたが、それは1人のユーザーを返すだけです。最初のクエリから複数のユーザーが返されます。 –

+1

それを考え出した。私は 'user_id'をvalues_list()に渡す必要がありました –

関連する問題