2011-03-04 26 views
3

我已經在django中創建了一個空的QuerySet。Django使用空的QuerySet連接數據庫對象

empty = classname.objects.none() 

和我有一個同類的對象(稱爲類)。

class 

我想要一個新的具有'class'的QuerySet。

EmptyQuerySet上沒有append方法,和&不適用於數據庫對象。

回答

6
>>> empty = Person.objects.none() 

如果你使用得到你返回一個數據庫對象,並得到這個錯誤,當你嘗試使用|將該對象附加到空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>] 
>>> 
+0

新學習! | =運算符可以追加對象!謝謝! – rechie 2013-11-29 02:56:40

相關問題