在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
您需要修復這些查詢,以便它們適用於您的特定情況。然後訣竅是將通過連接它們而獲得的兩個不同的查詢集組合起來。使用|得到他們的全套,使用&只得到他們的重疊。你想要全套(除非用戶也可以按照他們自己的帖子,那麼你可以調用distinct()在最終的超集)。
很酷,現在就試試。還有一個問題:是否可以通過通過url傳遞的內容獲取用戶?我瞭解基本過濾使用URL來獲取屬性 - 我如何在上面的示例中使用該用戶? – arooo
當您使用內置於Django中的驗證機制時,用戶將存儲在會話中。所以你可以從通過方法調用來的請求對象中獲取它。例如:.filter(author = User.objects.get(user = request.user)。如果您使用的是Django身份驗證,則request.user調用會讓您成爲用戶,如下所示:https:// docs。 djangoproject.com/en/dev/topics/auth/ – Mario
我的意思是更多的特定用戶,如果我想傳遞一個用戶名並獲得該用戶的特定職位 – arooo