Seite 3 von 3

Re: Daten aus zwei Klassen in ein template

Verfasst: Mittwoch 18. Februar 2015, 10:03
von django-yip
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?

Re: Daten aus zwei Klassen in ein template

Verfasst: Mittwoch 18. Februar 2015, 10:45
von 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.

Re: Daten aus zwei Klassen in ein template

Verfasst: Mittwoch 18. Februar 2015, 11:05
von django-yip
Moin BlackJack,

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

Re: Daten aus zwei Klassen in ein template

Verfasst: Mittwoch 18. Februar 2015, 14:11
von 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.