Daten aus zwei Klassen in ein template

Django, Flask, Bottle, WSGI, CGI…
django-yip
User
Beiträge: 31
Registriert: Montag 19. Januar 2015, 11:12

jerch hat geschrieben:Nein, das QuerySet hängt an Exemplaren von Mobilfunknummmer. Oder anders gefragt - was passiert in Deiner Action, wenn Du vorher einen Vertrag hinzufügst mit einer Mobilfunknummer, die schon in einem anderen Vertrag ist?
Ich konnte zwar dieses Problem mit OneToOneField lösen, allerdings funktioniert meine Abfrage dann nicht mehr.

Code: Alles auswählen

        for sim in queryset:
          print sim.mobilfunknummer.vertrag_set.get().grundtarif.grundtarif
Kommt nun die Fehlermeldung:
Exception Value:

'Mobilfunknummer' object has no attribute 'vertrag_set'
Wenn ich wieder Vertrag.mobilfunknummer als ForeignKey statt OneToOneField mache, funktioniert es wieder.

Jemand ne Idee wie ich das lösen kann?
BlackJack

@django-yip: Natürlich gibt es kein `vertrag_set`-Attribut mehr. Der Name macht bei eine 1:1-Beziehung doch auch überhaupt keinen Sinn. Schau Dir doch einfach mal die Beispiele an die in der Dokumentation von `OneToOneField` verlinkt sind.
django-yip
User
Beiträge: 31
Registriert: Montag 19. Januar 2015, 11:12

Moin BlackJack,

hab das nun mit "ForeignKey, unique=True" gelöst. Das scheint die Lösung zu sein.
BlackJack

@django-yip: Das ist nicht wirklich die Lösung. Du musst doch nur herausfinden wie das bei `OneToOneField` auf der anderen Seite heisst. Bonuspunkte wenn Du herausfindest wie man den Namen selbst festlegen kann. Beides steht in der Dokumentation. Wie es auf der anderen Seite heisst sieht man sehr deutlich in besagten Beispielen. Solange Du nicht in der Lage bist Dir solche Informationen selbst aus der Dokumentation anzueignen ist das eher halbblindes stochern im Nebel statt geplant die Werkzeuge zu benutzen die einem Django hier bietet.
Antworten