Override default queryset in Django admin

前端 未结 6 2087
孤城傲影
孤城傲影 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:19

    The accepted solution works great for me but I needed a little bit more flexibility, so I ended up extending the changelist view to add in a custom queryset parameter. I can now configure my default queryset/filter as such and it can still be modified by using a different filter (get parameters):

    def changelist_view(self, request, extra_context=None):
        if len(request.GET) == 0 :
            q = request.GET.copy()
            q['status__gt'] = 4
            request.GET = q
            request.META['QUERY_STRING'] = request.GET.urlencode()
    
        return super(WorksheetAdmin,self).changelist_view(request, extra_context=extra_context)
    

提交回复
热议问题