ユーザーが投稿したスレッドを取得するdjangoでクエリセットを作成するにはどうすればよいですか?
-
05-07-2019 - |
質問
django-mpttを使用してスレッドフォーラムアプリを作成しています。すべてが稼働していますが、特定のクエリセットを作成するのに問題があります。
次のような投稿を取得したい:
1)はルートノードです
2)current_userが投稿した current_userが投稿した子孫を持つ。
これまでのところ、これは次のとおりです。
Post.objects.filter(Q(user = current_user) | Q( )).exclude(parent__gt = 0)
2番目のQでは、current_userがその子孫の1つをポストしたかどうかを通知する必要があります。可能かどうかは誰にもわかりますか?
解決
これを1つのクエリで実行できるとは思わない。以下に2つの方法を示します。
thread_ids = Post.objects.filter(user=current_user).values_list('tree_id', flat=True)
posts = Post.objects.filter(tree_id__in=thread_ids, level=0)
これは、ユーザーが投稿したすべてのスレッドのMPTTツリーIDを取得します。次に、これらの各スレッドのルートノードを取得します。
所属していません StackOverflow