Profile for
robert
| Name | robert |
|---|---|
| Email Address | n/a |
| Posts | 1 |
-
- 2010-10-11 16:32:44
- Verständnisfrage zu Foreignkey und objects.filter
- Board » Django das Framework » Probleme & Fragen
-
Hi all,
ich bin beim Ausführen einer selbstgeschriebenen __len__ Methode für eine Modelklasse, die eine DB Anfrage nach dem Schema a.objects.filter(b=self).count() für den Rückgabewert durchführt, auf einen Laufzeitfehler "maximum recursion depth exceeded while calling a Python object" gestoßen. Durch die Fehlerausgabe konnte ich die Zeile "annotation = bool(value)" in der Methode add von WhereNode (django/db/models/sql/query.py) ausfindig machen.
Die Castingmethode ruft ja bekanntlich bei fehlerender __nonzero__ Methode __len__ auf und überprüft dessen Rückgabewert. Dies führt zu einer Endlosschleife von __len__. Das Problem tritt nicht auf, wenn in __len__ mittels a.objects.filter(b__exact=self.pk).count() abgefragt wird.
Ich wüsste jetzt gerne von jemanden, was Best Practise für die Abfrage von ForeignKey ist. Die Django Dokumentation ist da leider zwiespaltig.
Danke.
