Python QuerySet对象和或运算符
我是python新手,在使用djnago查询时发现了一些对象列表,如Python QuerySet对象和或运算符,python,django,list,Python,Django,List,我是python新手,在使用djnago查询时发现了一些对象列表,如 querysetObj = <QuerySet [<class: obj1>, <class: obj2>]> queryset=<QuerySet [<class: obj1>, <class: obj3>,<class:obj4>]> for obj in querysetObj: queryset|=obj queryse
querysetObj = <QuerySet [<class: obj1>, <class: obj2>]>
queryset=<QuerySet [<class: obj1>, <class: obj3>,<class:obj4>]>
for obj in querysetObj:
queryset|=obj
queryset=<QuerySet [<class: obj1>, <class: obj3>,<class:obj4>,<class:obj2]>#it acts like a set compare objects and add none repeated objects only
querystobj=
queryset=
对于querysetObj中的obj:
queryset |=obj
queryset=您可以通过实现特殊的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
方法(也可能是\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
如果左操作数定义了\uuuuu或,则调用其\uuuu或方法。如果它没有执行,或者抛出了未实现的,则调用右操作数的错误
其他操作符的实现方式也类似,使用各种特殊函数。它确实有效,我已经尝试检查DjangQuerySet不是列表,它们是QuerySet。例如,参见django罚单,了解它们添加到Yes中的位置,我想做相同的设计,但是对于普通类谢谢,我正在用我自己的类检查它
class Foo:
def __or__(self, other):
return "Orred Foo"
def __ror__(self, other):
return "Rorred Foo"
Foo() | Foo()
# => 'Orred Foo'
Foo() | 7
# => 'Orred Foo'
7 | Foo()
# => 'Rorred Foo'