2016-11-14 64 views
0

这是一个非常普遍的问题,我似乎没有找到答案。假设我有一个叫做Room的模型,指的是一个酒店房间。我希望有一个时间序列显示我过去,现在和未来的房间职业。在Django模型中随时间记录数据

我的一个“想法”是拥有一个类似于{'date':room.guest}的字典,但我没有看到如何为Django模型定义字典。这种方法是否可以在Django中实现?我有什么样的选择来实现这个目标?

目前我的房间模型是非常简单的,看起来像这样:

class Room(models.Model): 

    number = models.IntegerField() 

    room_type = models.ForeignKey('RoomType') 

    def __str__(self): 
     return "Room {}".format(self.number) 

房间本身就是在Guest模式外键..

回答

0

Django模型只是包装(包装聪明,但仍只有包装)以上数据库表。这里最明显的解决方案是思考如何在关系数据库级设计此功能,然后将其编写为Django模型。 IOW:你想要一个存储“职业”的分表:

class Occupation(models.Model): 
    room = models.ForeignKey(Room) 
    guest = models.ForeignKey(Guest) 
    date = models.DateField(...) 

# etc 
+0

谢谢你的回复。采用这种方法我似乎无法按照我想要的方式显示数据。我有一个从网址获得月份和年份的视图,然后必须迭代房间和日期并显示职业数据。假设我过滤月份和年份的职业,并将其传递给模板,并且还将日期和房间列表传递给模板。然后我使用循环来填充表格。我怎样才能使模板获得职业.is_occupied占领.date__day = day和occup.room = room? –

+0

不要将您的逻辑放在模板中 - 它属于模型和/或视图。 –

+0

你能给我一些关于如何实现这一目标的建议吗?据我所知,我没有在模板中加入任何逻辑......我只是希望它显示某些变量的值......这就是模板所做的一切,对吧? –