2017-01-04 2 views
3

私が言うエラーメッセージました:Qを正しく使用してForeignKeyとManyToManyでクエリーセットをフィルタリングする方法は?

「ユーザー」オブジェクトは、インデックス

をサポートしていない私はself.request.userを(あるオブジェクトを含むクエリを取得するにはQを使用してクエリセットフィルタリングしようとしますユーザーモデルオブジェクト)は、owner(ForeignKey)またはparticipants(ManyToMany)のいずれかです。

if self.request.user.has_perm('permissions'): 
    queryset = self.model.objects.filter(parent=None) 
else: 
    queryset = self.model.objects.filter(Q(parent=None), 
             Q(owner=self.request.user) | Q(participants__in=self.request.user)) 

私は問題がQ(participants__in=self.request.user)だと思うが、私はそれを修正する方法が分からない:

は、ここに私のコードです。

答えて

1

このエラーはQ(participants__in=self.request.user)の場合、inを使用すると、繰り返し可能なものを指定する必要があります。

モデルを投稿できますか?

+4

答えを完成させるには、 'Q(participants = self.request.user)'でなければなりません。 –

関連する問題