【发布时间】:2010-09-24 17:44:38
【问题描述】:
我有一个模型“项目”,它与“位置”的比例为 1:n。意味着,有一个项目的位置历史。
Location 对“Room”、“Room”对“Floor”和“Floor”对“Building”有一个 FK。 现在,我想选择当前位于特定楼层的所有项目。
我可以通过列表推导来解决它,但是有没有更好的方法可以通过一个查询来解决它?
-- 更新--
感谢您的回答,很遗憾,它们不符合要求。为了澄清这个问题,这里有一些模型的代码sn-ps:
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):
[..]
我想获取所有当前位于特定楼层的项目,由楼层 ID 指定(如您在模型中所见,项目可以重新定位)。再次感谢。
【问题讨论】:
-
我看不到(如果您保存项目所在的所有位置的历史记录)如何确定当前位置(
Location中可能有 DateField 或类似的东西)好吗? -
你说得对。对不起,有一个 created_at 字段我忘了添加到示例代码中。
标签: django django-orm