我的代码中有以下查询集。
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(),则使用此选项会导致错误。
并使用results_list = new_list | most_viewd_list选项,我没有得到理想的结果。
任何人都可以告诉我如何创建一个列表,其中包含new_list行,后跟most_viewed_list行。
由于
答案 0 :(得分:1)
您的代码正在创建一个列表(您想要的类型)。您可以使用len
len(result_list)
来获取列表的长度。
答案 1 :(得分:1)
拿一个像这样的空列表
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]