我在django中创建了一个空的QuerySet,就像这样。
empty = classname.objects.none()
我有一个相同类的对象(称为类)。
class
我想要一个新的QuerySet,其中包含'class'。
EmptyQuerySet和|上没有append方法和&不适用于db对象。
答案 0 :(得分:7)
>>> empty = Person.objects.none()
如果您使用get,则返回db对象并在尝试使用时出现此错误将对象附加到空qs:
>>> qs = empty|Person.objects.get(pk=1)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/dev/.virtualenvs/dev/lib/python2.7/site-packages/django/db/models/query.py", line 1018, in __or__
return other._clone()
AttributeError: 'Person' object has no attribute '_clone'
然而你可以使用|运算符组合两个查询集。要将对象作为查询集,我们可以使用.filter():
>>> qs = empty|Person.objects.filter(pk=1)
>>> print qs
[<Person: A>]
>>> qs = qs|Person.objects.filter(pk=2)
>>> print qs
[<Person: A>, <Person: B>]
>>>