[Django] Effizienter Test auf Enthaltensein?
Verfasst: Mittwoch 6. August 2008, 08:44
Ich habe einen Container und ein Item.
Nun möchte ich feststellen, ob ein Item in einem bestimmten Container steckt. Naiv wie ich bin, dachte ich mir, ein
wird's schon richten, aber das geht nicht. Auch ein
ist nicht, was ich will, denn das holt und instantiiert alle Items, um sie dann abzulaufen. Das ist extrem ineffizient.
Die folgende Zeile macht's besser, aber geht das nicht einfacher? Übersehe ich das offensichtliche?
Stefan
Code: Alles auswählen
class Container(models.Model):
pass
class Item(models.Model):
containers = models.ManyToManyField(Container, related_name='items')
Code: Alles auswählen
if item in container.items: ...
Code: Alles auswählen
if item in container.items.all(): ...
Die folgende Zeile macht's besser, aber geht das nicht einfacher? Übersehe ich das offensichtliche?
Code: Alles auswählen
if container.items.filter(id=item.id).count() > 0: ...