2013-05-13 94 views
0

我的代码中有下面的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行。

谢谢

回答

1

您的代码正在创建一个列表(您想要的类型)。你用lenlen(result_list)作为列表的长度。

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] 
相关问题