Seite 1 von 1
Problem bei if - elif Abfrage
Verfasst: Montag 9. November 2009, 10:48
von Newbie2009
Hallo,
ich hab ein Problem bei einer if - elif Abfrage.
Und zwar folgender Ablauf:
Code: Alles auswählen
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?
Verfasst: Montag 9. November 2009, 10:55
von EyDu
Hallo,
so richtig schlau werde ich aus deinem Code nicht.
Ach ja
Verfasst: Montag 9. November 2009, 10:59
von Newbie2009
Ich habe 2 Checkboxen.
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.
Verfasst: Montag 9. November 2009, 11:08
von Hyperion
Newbie2009 hat geschrieben:Ich habe 2 Checkboxen.
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?
Verfasst: Montag 9. November 2009, 11:10
von /me
Newbie2009 hat geschrieben:Ich habe 2 Checkboxen.
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.
Verfasst: Montag 9. November 2009, 11:13
von Newbie2009
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.
images = object.images.all()
Verfasst: Montag 9. November 2009, 12:05
von /me
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.
Verfasst: Montag 9. November 2009, 19:21
von BlackJack
@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.