To override default queryset in Python Django admin, we can override the get_queryset method in our model.
For instance, we write
class MyModelAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super(MyModelAdmin, self).get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(author=request.user)
to add the get_queryset into MyModelAdmin.
In it, we call call the super constructor with MyModelAdmin and self.
And we get the queryset wirth get_queryset from the super class.
And then we return the queryset we want according to the value of request.user.is_superuser.