Ich habe eine Django-App, wo mein Hauptmodell ForeignKey-Felder zu anderen DB-Tabellen hat.Django: Verwenden von objects.values () und ForeignKey Daten in Vorlage
Alle ForeignKey-Tabellen verfügen über eine Unicode-Funktion, die den Namen zurückgibt, der in der Vorlage angezeigt werden soll.
class Priority(models.Model):
value = models.CharField(max_length=64)
sortkey = models.PositiveSmallIntegerField()
isactive = models.NullBooleanField()
visibility_value_id = models.SmallIntegerField(null=True,blank=True)
def __unicode__(self):
return self.value
In der Ansicht, ich bin mit der Abfrage wie:
bugs = Bugs.objects.filter(active=True).order_by('priority__sortkey','bug_severity__sortke
In der Vorlage kann ich durch sie durchlaufen, und richtig ForeignKey Wert anzuzeigen.
{% for bug in bugs %}
<tr class="bugrow" >
<td>{{bug.bug_id}}</td>
<td>{{bug.priority}}</td>
<td>{{bug.bug_severity}}</td>
<td>{{bug.bug_status}}</td>
<td>{{bug.resolution}}</td>
Das Problem, das ich habe ist, dass ich die Bugs Daten manipulieren müssen, bevor es auf die Vorlage zu senden, so dass ich die Werte() -Methode ein Wörterbuch zurückzukehren. Wenn ich dieses Wörterbuch an die Vorlage übergebe, werden keine Felder angezeigt, die auf ForeignKey verweisen.
Ich bin ziemlich sicher, dass der Grund ist, dass die Werte nur den tatsächlichen Datenbankwert zurückgibt, so dass es nicht der FK folgen kann.
Die Frage ist, wie kann ich die Daten manipulieren, die es an die Vorlage senden, und trotzdem dem ForeignKey folgen?
Das hat perfekt funktioniert. Ich schwöre, dass ich die Queryset.values () -Dokumentation zehn Mal gelesen habe, um das herauszufinden und nie diesen unteren Block über die FK-Relationen zu lesen. – zoidberg
Fühlen Sie sich nicht schlecht - das habe ich schon mehrfach vermisst, als ich anfing. Ich persönlich denke, dass sollte ein Feature der Dokumentation sein, nicht ein nachträglicher Einfall. –