Django Admin : 변경 목록에서 볼 수 있듯이 Get String에 따라 쿼리 세트 필터링 되나요?
-
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()
다른 팁
보세요 장고 필터.
제휴하지 않습니다 StackOverflow