我们从Python开源项目中,提取了以下1个代码示例,用于说明如何使用django.views.generic.list.MultipleObjectMixin()。
def get_context_data(self, **kwargs): history = self.page_user.content_set.public().prefetch_related( "author__reputation", "items") fwers_ids = Follow.objects.get_follows( self.page_user).values_list("user_id", flat=True) obj_fwed = Follow.objects.filter(user=self.page_user) fwees_ids = obj_fwed.values_list("target_user_id", flat=True) items_fwed_ids = obj_fwed.values_list("target_item_id", flat=True) empty_msg = _("%(page_user_display)s have not contributed yet.") % { "page_user_display": user_display(self.page_user) } context = super(ProfileDetailView, self).get_context_data(**kwargs) followers = User.objects.filter(pk__in=fwers_ids) followees = User.objects.filter(pk__in=fwees_ids) scores, votes = history.get_scores_and_votes(self.request.user, True) context.update({ "empty_msg": empty_msg, "reputation": self.page_user.reputation, "fwers": followers.order_by("-reputation__reputation_incremented"), "fwees": followees.order_by("-reputation__reputation_incremented"), "items_fwed": Item.objects.filter(pk__in=items_fwed_ids), "scores": scores, "votes": votes, }) # Next step would be to be able to "merge" the get_context_data of both # DetailView (SingleObjectMixin) and MultipleObjectMixin m = MultipleObjectMixin() m.request = self.request m.kwargs = self.kwargs m.paginate_by = self.paginate_by history = history.select_subclasses() context.update(m.get_context_data(object_list=history)) return context