我有一个名为Event的模型和一个名为Person的模型。我希望能够为事件定义角色,并能够将多个人员分配给事件角色。每个人只能参加一个活动的一个角色。在我的模型中创建这种关系的最佳方法是什么?
答案 0 :(得分:1)
也许是这样的?
class Event(models.Model):
name = models.CharField(...)
...
# a role is created and assigned to an event.
class Role(models.Model):
event = models.ForeignKey(Event)
...
# person is created and assigned a role. I would foreignkey to the role so the person can only be assigned to one role. And not several roles assigned to one person.
class Person(models.Model):
role = models.ForeignKey(Role)
...
创建活动:音乐会
创建角色:Bouncer.event = Concert
创建一些人:Jim.role = Bouncer,John.role = Bouncer等。
答案 1 :(得分:1)
您需要一个角色模型:
class Event(models.Model):
# ...
class Person(models.Model):
# ...
class Role(models.Model):
event = models.ForeignKey(Event)
person = models.ForeignKey(Person)
# ...
这样,一个事件可以有多个角色,每个角色由一个人管理。