如何访问django中的itertools对象

How to access itertools object in django

本文关键字:django 中的 itertools 对象 访问 何访问      更新时间:2023-09-26

我定义了一个get_queryset()方法,我想在其中返回两个queryset对象,比如:

get_queryset(self):
    r1 = Books.objects.filter(auther_id=1);
    r2 = Books.objects.filter(~Q(auther_id=1));
    return r1,r2

对该方法的调用来自一个带有ajax调用的javascript文件。现在我想在js文件中分别访问r1和r2。我试着做

r=chain(r1,r2) // in views.py
r.r1.fieldName  and r.r2.fieldName  // in js file.

我不确定如何取消搜索itertools对象。如果不可能的话,有人能告诉我其他的方法吗。

我也看到了ifilter()等方法来访问对象,但我想在js中访问它。

编辑:我已经编辑了代码。我俱乐部是否可以像一样查询

Books.objects.all()

在js中,做一些事情来获得两个列表,一个是auther_id为1的图书,另一个是其他auther_id的列表。

这根本没有任何意义。你不能"解开"某些东西;chain的全部意义在于,它将单个元素变成一个单一的无差别项目,无法判断其中一个原始元素在哪里结束,下一个元素在哪里开始。

如果要在模板中单独访问两个查询集,则传递两个单独的查询集。