Skip to content

Instantly share code, notes, and snippets.

@copitux
Created June 27, 2012 12:04
Show Gist options
  • Save copitux/3003658 to your computer and use it in GitHub Desktop.
Save copitux/3003658 to your computer and use it in GitHub Desktop.
swap_queryset
class OwnAdmin(admin.ModelAdmin):
...
def swap_queryset(func):
def wrapper(self, request):
own_queryset_method = self.queryset
self.queryset = super(LeaderAdmin, self).queryset
response = func(self, request)
self.queryset = own_queryset_method
return response
return wrapper
def queryset(self, request):
user = request.user
users = super(LeaderAdmin, self).queryset(request).exclude(pk=user.pk)
return users.filter(groups__in=user.leader_groups()).distinct()
@swap_queryset
def profile(self, request):
user = request.user
return self.change_view(request, str(user.pk))
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment