get_object_listでより複雑な処理を行います。脱水プロセスが開始する前、つまり、返されるJSONが作成される前に呼び出されます。
class PostResource(ModelResource):
class Meta:
queryset = Post.objects.all()
def get_object_list(self, request):
this_users_posts = super(PostResource, self).get_object_list(request).filter(user=User.objects.get(user=request.user))
all_the_posts_this_user_follows = super(PostResource, self).get_object_list(request).filter(follower=User.objects.get(user=request.user))
return this_users_posts | all_the_posts_this_user_follows
特定のケースで機能するように、これらのクエリを修正する必要があります。次に、それらを連結することによって、取得した2つの異なるクエリセットを組み合わせるのがコツです。使用| &を使用してフルセットを取得し、オーバーラップのみを取得します。フルセットが必要です(ユーザーが自分の投稿をフォローできる場合を除いて、結果のスーパーセットでdistinct()を呼び出すことができます)。