如何将django中的两个queryset列表与第二个列表后的第一个列表结合起来
问题描述:
我的代码中有下面的queryset。如何将django中的两个queryset列表与第二个列表后的第一个列表结合起来
new_date = date.today() - timedelta(days=7)
most_viewd_list = mytable.objects.filter(show_on_website=True).order_by('-most_viewd')
new_list = most_viewd_list.filter(date_created__gte=new_date)
现在,我想创建一个新的列表(results_list),它将在开始处有new_list行,然后是most_viewed_list。
我尝试过How to combine 2 or more querysets in a Django view?中提到的选项,但它们都没有工作。
我试过下面选项...
from itertools import chain
result_list = list(chain(new_list, most_viewd_list))
但随着)这个选项,如果我使用result_list.count(,它抛出一个错误。
And with results_list = new_list | most_viewd_list选项,我没有得到所需的结果。
任何人都可以告诉我如何创建一个列表,其中new_list行后跟most_viewed_list行。
谢谢
答
您的代码正在创建一个列表(您想要的类型)。你用len
:len(result_list)
作为列表的长度。
答
拿一个空列表这样
result_list=[]
result_list.append(most_viewd_list)
result_list.append(new_list)
例:
a = [66.25, 333, 333, 1, 1234.5]
>>> print a.count(333), a.count(66.25), a.count('x')
2 1 0
>>> a.append(333)
>>> a
[66.25, 333, 333, 1, 1234.5, 333]