이것은 내 원래 검색어입니다. Movie.objects.filter(releaseday__gte=past_month.date(),releaseday__lte=today.date(),movie__movietime__gte=today).extra({'vrank': 'CASE WHEN hotrank=0 THEN 4 WHEN hotrank >=4 THEN 4 ELSE hotrank END'}).distinct().order_by('vrank','-releaseday')
Django restframework - 두 개의 쿼리 세트를 결합하여 우선 순위에 따라 직렬화하는 방법?
결과가 중복되었습니다. 나는이 문서를 보면
, 그것은 proble 내가 순서 queryset1
및 queryset2
을 결합해야합니다 그래서 지금 함께
을 order_by()
및 distinct()
를 사용하고 있다고 말했다. 첫째 queryset1
,
의 결과를 보여 다음 queryset2
날 감사 도와주세요
views.py :
class MovieList(MovieMixin, generics.ListAPIView):
serializer_class = MovieSerializer
def get(self, request, *args, **kwargs):
if request.GET.get("top"):
self.top(top)
return super(MovieList, self).get(request, *args, **kwargs)
def top(self,top):
queryset1 = Movie.objects.filter(releaseday__gte=past_month.date(),releaseday__lte=today.date(),movie__movietime__gte=today,hotrank__lte=3).exclude(hotrank=0).distinct().order_by('hotrank')
queryset2 = Movie.objects.filter(releaseday__gte=past_month.date(),releaseday__lte=today.date(),movie__movietime__gte=today).exclude(hotrank__lte=3,hotrank__gte=1).distinct().order_by('-releaseday')
self.queryset =(queryset1 | queryset2)
간단합니다. 원본 쿼리가 더 길다. 나는 그것을 편집 할 것이다. 잠시 기다려주십시오. – user2492364
"결합하다"는 뜻은 "합집합"을 의미합니까? 즉, 입력 된 쿼리 세트 중 하나 또는 둘 다의 멤버 인 모든 항목이 필요합니다. –
왜 공통 필터링을위한 변수를 소개하지 않습니까? '''' '목록'객체 '에는 속성이 없습니다 –