if self.variant() and not self.images and not self.parent_images:
object = self.parent
elif self.variant() and self.images and not self.parent_images:
object = self
elif self.variant() and not self.images and self.parent_images:
object = self.parent
elif self.variant() and self.images and self.parent_images:
object = self + self.parent
else:
object = self
Mein Problem liegt in der letzten elif-Abfrage. An dieser Stelle sollen die Bilder vom Basisprodukt und der Variante angezeigt werden. Wie muss ich das schreiben?
Zuletzt geändert von Newbie2009 am Montag 9. November 2009, 11:16, insgesamt 1-mal geändert.
1. If: kein Haken gesetzt --> zeige nur die Bilder vom Basisprodukt
2. If: ein Haken gesetzt bei der Variante --> zeige nur die Bilder der Variante
3. If: ein Haken bei Basisprodukt gesetzt --> zeige nur die Bilder des Basisproduktes
4. If: Beide Haken gesetzt --> zeige die Bilde der Variante und des Basisproduktes.
Vielleicht erklärt es sich jetzt besser was ich möchte.
Wie greifst Du auf den Status dieser beiden Boxen zu?
1. If: kein Haken gesetzt --> zeige nur die Bilder vom Basisprodukt
2. If: ein Haken gesetzt bei der Variante --> zeige nur die Bilder der Variante
3. If: ein Haken bei Basisprodukt gesetzt --> zeige nur die Bilder des Basisproduktes
4. If: Beide Haken gesetzt --> zeige die Bilde der Variante und des Basisproduktes.
Wie wird das "zeigen" gemanaget? Was muss dafür wie gesetzt werden?
1. If: kein Haken gesetzt --> zeige nur die Bilder vom Basisprodukt
2. If: ein Haken gesetzt bei der Variante --> zeige nur die Bilder der Variante
3. If: ein Haken bei Basisprodukt gesetzt --> zeige nur die Bilder des Basisproduktes
4. If: Beide Haken gesetzt --> zeige die Bilde der Variante und des Basisproduktes.
Vielleicht erklärt es sich jetzt besser was ich möchte.
Die Idee ist klar, aber der Code hat nicht wirklich etwas mit Django zu tun.
Ohne Kenntnis deiner Umgebung kann man hier keine Vorschläge machen. Du reichst ein Objekt zurück das dann wohl durch eine andere Routine verarbeitet wird. Ich habe keine Ahnung wie dieses Objekt modelliert ist und welche Annahmen die aufrufende Routine darüber trifft.
Der Status wird in einer Db gespeichert mit "True" und "False".
Nur mal für das 4. If. Es wird geschaut ob das Produkt eine Variante (z.B. Farbe rot) ist mit self.variant(). Wenn self.images = True und self.parent_images = True, dann soll object alle Bilder zurückliefern.
Newbie2009 hat geschrieben:
Nur mal für das 4. If. Es wird geschaut ob das Produkt eine Variante (z.B. Farbe rot) ist mit self.variant(). Wenn self.images = True und self.parent_images = True, dann soll object alle Bilder zurückliefern.
images = object.images.all()
Gesetzt den Fall, dass object.images.all() eine Liste zurückliefert ist das Verketten einfach.
Sollte es sich nicht um eine Liste handeln, dann wäre es wirklich sehr praktisch, wenn du uns mitteilen würdest um was für eine Datenstruktur es sich hier handelt.
@Newbie2009: Du solltest den Namen `object` nicht neu binden. Man sieht ja am Syntaxhighlighting, dass der etwas besonderes ist. Wenn da ein Ergebnis einer Funktion oder Methode dran gebunden wird, wäre `result` zum Beispiel ein netter Name.
Als nächstes ist das Ergebnis von `self.variant()` Bestandteil von jeder Bedingung, also sollte man das herausziehen.
Ansonsten ist mir die Frage nicht so ganz klar. Du hast zwei Checkboxen, aber drei Wahrheitswerte!? Welches ist welcher und wo kommt der Dritte her!? Es sieht IMHO zu kompliziert aus.