Grundsätzlich habe ich eine Tabelle mit einer Reihe von Fremdschlüsseln und ich versuche nur das erste Auftreten eines bestimmten Schlüssels durch das Feld "erstellt" abzufragen. Wenn das Entry-Modell im Blog/Entry-Beispiel einen Fremdschlüssel für Blog und einen Fremdschlüssel für Benutzer hat, wie kann ich eine Abfrage erstellen, um alle Einträge auszuwählen, in denen ein bestimmter Benutzer den ersten für die verschiedenen Blogs geschrieben hat?Wie kann ich eine Django-Abfrage für das erste Auftreten eines Fremdschlüssels in einer Spalte machen?
class Blog(models.Model):
...
class User(models.Model):
...
class Entry(models.Model):
blog = models.Foreignkey(Blog)
user = models.Foreignkey(User)
Ich gehe davon aus, es gibt einige Magie, die ich vermisst habe die ersten Einträge eines Blogs zu wählen, und das kann ich einfach Filter weiter unten auf einen bestimmten Benutzer durch Anhängen:
query = Entry.objects.magicquery.filter(user=user)
Aber vielleicht gibt es einige andere effizientere Art und Weise. Vielen Dank!
Ich habe erwähnt sollte, dass ein Nutzer für mehrere Blogs schreiben. Das Limit zeigt also nur den ersten Eintrag an, den der Benutzer jemals geschrieben hat. Ich möchte in der Lage sein, alle Einträge zu nehmen, die der Benutzer schrieb, die die ersten Einträge für jeden Blog sind. –
Ich sehe, meine Antwort funktioniert in diesem Fall nicht, und ich bin nicht in der Lage, etwas nur mit Queryset-Methoden arbeiten ... values () und annotieren() arbeiten nicht zusammen, wie ich es erwarte, und ich kann das rohe SQL, von dem ich weiß, dass es in Djangos ORM funktioniert, nicht übersetzen. Es tut uns leid :( – inerte