J'ai un modèle "Item", qui a un 1: n à "Location". Moyens, il existe un historique des emplacements pour les articles.Requête Django sur l'historique
L'emplacement a un FK à "Pièce", "Pièce" à "Étage" et "Étage" à "Bâtiment". Maintenant, je veux sélectionner tous les éléments qui sont actuellement situés dans un étage spécifique.
Je pourrais le résoudre avec une compréhension de liste, mais y a-t-il une meilleure façon de le résoudre avec une requête?
- Mise à jour -
Merci pour vos réponses, malheureusement, ils ne correspondent pas à l'exigence. Pour clarifier la question, voici quelques extraits de code des modèles:
class Item(models.Model):
[..]
class Location(models.Model):
item = models.ForeignKey(Item)
room = models.ForeignKey(Room)
created_at = models.DateTimeField(auto_now_add=True)
[..]
class Room(models.Model):
floor = models.ForeignKey(Floor)
[..]
class Floor(models.Model):
building = models.ForeignKey(Building)
[..]
class Building(models.Model):
[..]
Je veux obtenir tous les éléments qui sont actuellement situé sur un sol spécifique, spécifiée par un identifiant de plancher (comme vous pouvez le voir dans les modèles , un article peut être déplacé). Merci encore.
je ne vois pas (si vous enregistrez une histoire de tous les endroits où un élément a été) comment vous pouvez déterminer quel est l'emplacement ACTUEL (peut-être y-a-t-il un champ DateField ou quelque chose comme ça dans 'Location'?) –
Vous avez raison, je suis désolé, il y a un champ created_at que j'ai oublié d'ajouter à l'exemple code – schneck