Django Admin : 변경 목록에서 볼 수 있듯이 Get String에 따라 쿼리 세트 필터링 되나요?

StackOverflow https://stackoverflow.com/questions/1686934

  •  18-09-2019
  •  | 
  •  

문제

Django 관리자에서 사용자는 변경 목록에 표시된 행을 제한하는 필터를 설정할 수 있습니다. 쿼리 문자열로 정의 된 필터를 설정 한 쿼리 세트 인스턴스를 어떻게 얻을 수 있습니까? 예를 들어, Pass? start_date_gte = 2009-11-06을 통과하면 Django 관리자는 qs.filter (start_date__gte ...)를 어딘가에 적용합니다. 이러한 쿼리 세트에 어떻게 액세스 할 수 있습니까?

분명히이 get 매개 변수를 가져 오는 코드를 다시 작성하고 싶지 않기 때문에이 문제가 필요합니다.

도움이 되었습니까?

해결책

class MyAdmin(admin.ModelAdmin):
  def changelist_view(self, request, extra_context=None):
    from django.contrib.admin.views.main import ChangeList
    cl = ChangeList(request, self.model, self.list_display, self.list_display_links, self.list_filter, self.date_hierarchy, self.search_fields, self.list_select_related, self.list_per_page, self.list_editable, self)
    # getting query set with same filters like current change list
    filtered_query_set = cl.get_query_set()

다른 팁

보세요 장고 필터.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top