我正在尝试链接查询集,同时保留其链接顺序。
类似的东西:
def queryset(self, request):
qs = super(EstateAdmin, self).queryset(request).exclude(display_status_id__name='offline')
new_estates = qs.exclude(Q(purposes__purpose_id=BaseSearchBoxForm.TO_RENT_ID)).filter(Q(
create_date_time__gte=datetime.datetime.now() - datetime.timedelta(
days=settings.IS_NEW_ESTATE_DELTA)))
new_prices = qs.filter(Q(price_change_date_time__gte=datetime.datetime.now() - datetime.timedelta(
days=settings.IS_NEW_PRICE_DELTA)))
the_rest = qs
return new_estates + new_prices + the_rest
我尝试使用itertools.chain,但它的行为不像查询集。
这样做的目的是自定义admin change_list查询集,以便在三个类别中对其进行排序。
答案 0 :(得分:-1)
试试Q objects。然后你可以做这样的事情:
from django.db.models import Q
good_products = Q(evaluation__lte=2)
average_products = Q(evaluation__lte=5) & good_products
the_rest = Q(evaluation__gte=5)
queryset = Product.objects.filter(good_products & average_products & the_rest)