ユーザーが投稿したスレッドを取得するdjangoでクエリセットを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1409800

  •  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を取得します。次に、これらの各スレッドのルートノードを取得します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top