Override default queryset in Django admin

前端 未结 6 2065
孤城傲影
孤城傲影 2020-11-27 14:51

One of my models has a deleted flag, which is used to hide objects globally:

class NondeletedManager(models.Manager):
    \"\"\"Returns only objects which ha         


        
6条回答
  •  醉梦人生
    2020-11-27 15:26

    You can override get_queryset method in your model admin class.

    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)
    

    Note in Django<=1.5 the method was named just queryset.

提交回复
热议问题