【问题标题】:Historicity in DjangoDjango 的历史
【发布时间】:2011-05-28 03:24:40
【问题描述】:
我想在 django 模型中创建几个对象。
如 Room[idRoom, nameRoom] 和 User[idUser, nameUser]。
我想在 Room's 和 Room's for User 中有多个用户。
我想按用户获取特定房间和所有房间中的所有用户。
另外,我想制作 Room 和 User 表的更改历史记录。
有人可以帮我吗?
【问题讨论】:
标签:
database
django
database-design
history
【解决方案1】:
这是你需要拥有的草图:
class User(models.Model):
pass
class Room(models.Model):
users = models.ManyToManyField(User, related_name="rooms")
class History(models.Model):
room = models.ForeignKey(Room)
user = models.ForeignKey(User)
time = models.DateTimeField(auto_now_add=True)
# add some objects
first_user = User()
first_user.save()
first_room = Room()
first_room.save()
first_user.rooms.add(first_room)
History(room=first_room, user=first_user).save()
# ^^^ it automatically adds the current date and time
# now fetch them like this:
Room.objects.get(pk=the_room).users.all()
User.objects.get(pk=the_user).rooms.all()
User.objects.get(pk=the_user).history_set.order_by("-time")