Fondamentalement, j'ai une table avec un tas de clés étrangères et j'essaye d'interroger seulement la première occurrence d'une clé particulière par le champ "créé". En utilisant l'exemple Blog/Entrée, si le modèle Entry a une clé étrangère pour Blog et une clé étrangère pour Utilisateur, alors comment puis-je construire une requête pour sélectionner toutes les Entrées dans lesquelles un Utilisateur particulier a écrit le premier pour les différents Blogs?Comment faire une requête Django pour la première occurrence d'une clé étrangère dans une colonne?
class Blog(models.Model):
...
class User(models.Model):
...
class Entry(models.Model):
blog = models.Foreignkey(Blog)
user = models.Foreignkey(User)
Je suppose qu'il ya quelque chose de magique que je suis absent pour sélectionner les premières entrées d'un blog et que je peux simple filtre plus bas à un utilisateur particulier en ajoutant:
query = Entry.objects.magicquery.filter(user=user)
Mais peut-être il y a quelques d'autres manière plus efficace. Merci!
je l'ai mentionné qu'un utilisateur peut écrire pour plusieurs blogs. Ainsi, la limite ne montre que la première entrée que l'utilisateur a jamais écrite. Je veux être en mesure de saisir toutes les entrées que l'utilisateur a écrit qui sont les premières entrées pour un blog. –
Je vois, ma réponse ne fonctionne pas dans ce cas, et je ne peux pas avoir quelque chose qui fonctionne uniquement avec les méthodes queryset ... values () et annotate() ne fonctionnent pas ensemble comme je m'y attends, et je ne peut pas traduire le SQL brut que je sais qu'il va fonctionner dans ORM de Django. Pardon :( – inerte