2011-03-04 5 views
3

このようなdjangoで空のQuerySetを作成しました。Djangoは空のQuerySetとdbオブジェクトを連結します

empty = classname.objects.none() 

と私は同じクラス(クラスと呼ばれる)のオブジェクトを持っています。

class 

'class'を持つ新しいQuerySetが必要です。

EmptyQuerySetには追加メソッドがありません。 &はdbオブジェクトでは機能しません。

答えて

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

dbオブジェクトを返すgetを使用すると、このエラーが発生します。オブジェクトを空の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' 

ただし、 2つのクエリセットを組み合わせることができます。オブジェクトをクエリセットとして取得するには、.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