2016-08-18 2 views
1

Wenn ich eine QuerySet haben, die leer sein kann, und ist OK leer zu sein, kann ich in der Regel:Verwendung von Bool in Django QuerySet

results = MyModel.objects.filter(something) 
if results: 
    work on results 

die bedingte automatisch in bool(results) übersetzt oder verschieden ist ausdrücklich Rufen Sie bool() auf QuerySets?

Dank

Hinweis: Ich bin auf dem Django 1.10 mit Python 3.5

Antwort

1

Sowohl die gleichen sind.

Wenn dabei if obj, bool(obj) aufgerufen wird, egal was obj ist der Typ ist.

dieses erfundene Beispiel Siehe:

class A(list): 
    def __bool__(self): 
     print('called bool') 
     return bool(super()) 

if A(): 
    pass 

>> 'called bool'