Ich habe eine Django-App, in der mein Hauptmodell ForeignKey-Felder zu anderen DB-Tabellen hat.
%Vor%Alle ForeignKey-Tabellen haben eine Unicode-Funktion, die den Namen zurückgibt, der in der Vorlage angezeigt werden soll.
%Vor%In der Ansicht führe ich die Abfrage wie folgt aus:
%Vor%In der Vorlage kann ich sie durchlaufen und den ForeignKey-Wert korrekt anzeigen.
%Vor%Das Problem, das ich habe, ist, dass ich die Bugs-Daten manipulieren muss, bevor ich sie an die Vorlage sende. Daher benutze ich die Methode values (), um ein Wörterbuch zurückzugeben. Wenn ich dieses Wörterbuch an die Vorlage übergebe, werden keine Felder angezeigt, die auf einen ForeignKey verweisen.
Ich bin ziemlich sicher, dass der Grund dafür ist, dass die Werte nur den tatsächlichen Datenbankwert zurückgeben, so dass er nicht dem FK folgen kann.
Die Frage ist, wie kann ich die Daten manipulieren, die sie an die Vorlage senden, und trotzdem dem ForeignKey folgen?
Ich benutze diese Methode die ganze Zeit. Du hast Recht. Es gibt nur die Werte zurück, daher müssen Sie die "__" -Notation verwenden, um den Wert vom ForeignKey zu erhalten. Zum Beispiel:
%Vor%Nun, in deiner Vorlage machst du:
%Vor%Dies wird in den QuerySet.values behandelt () Dokumentation , ganz unten:
%Vor%Sie können auch auf Felder in verwandten Modellen mit umgekehrten Beziehungen verweisen durch OneToOneField, ForeignKey und ManyToManyField Attribute:
Tags und Links django