Python 如何在Django中为这种关系建模?

Python 如何在Django中为这种关系建模?,python,django,Python,Django,我正在尝试建立一个模型,并且正在努力解决如何处理一种特殊的关系。有两个对象;个人,包括姓名、电子邮件地址等;运动,包括姓名、位置等 我的关系是一个单独的对象,它将球员映射到运动。有一个额外的字段用于特定于该运动的球员信息。我想建立另一个关系,指定一个(可选)人员作为某项运动运动员的代理 代理将是这样的,指定的人将能够充当玩家(可能在一段有限的时间内)。例如,假设球员A正在管理足球,并将休假两周。他们希望有一个人代表他们行事,发送通知,通知其他玩家游戏等 在SQL中,我有一个带有player\u

我正在尝试建立一个模型,并且正在努力解决如何处理一种特殊的关系。有两个对象;个人,包括姓名、电子邮件地址等;运动,包括姓名、位置等

我的关系是一个单独的对象,它将球员映射到运动。有一个额外的字段用于特定于该运动的球员信息。我想建立另一个关系,指定一个(可选)人员作为某项运动运动员的代理

代理将是这样的,指定的人将能够充当玩家(可能在一段有限的时间内)。例如,假设球员A正在管理足球,并将休假两周。他们希望有一个人代表他们行事,发送通知,通知其他玩家游戏等

在SQL中,我有一个带有
player\u id
、一个
sport\u id
和另一个
player\u id
字段的表,该字段可以为空(以及过期日期和其他字段)

然而,我似乎不知道如何在Django模型中指定这一点。以下是我目前掌握的情况:

"""Indicates people who are registered for a type of event.

They can have a unique nickname for each event, if desired.
In addition, they can select a proxy for them, who can act in
thier behalf for this event."""

nickname = models.CharField(max_length=30)
event_type = models.ForeignKey(EventType, related_name='+')
person = models.ForeignKey(Person, related_name='+')
proxy = models.OneToOneField(Person, related_name='+') # ?????
proxy_expires = models.DateField(null=True, blank=True)
这似乎使代理成为必填字段,这不是我想要的。关于我如何建模的任何建议,代理的约束是可选的,每个运动项目每人一个代理


谢谢

为什么添加
blank=True
(可能是
null=True
)不起作用?它对proxy\u expires字段(这只是一个普通字段,但对proxy字段不起作用,这是我遇到问题的关系。该字段以“唯一”结尾key字段。OneToOne字段在概念上是一个ForeignKey,unique=True,如下所述:。您可能应该将其创建为一个ForeignKey,null=True,blank=True,并且不要忘记设置相关的\u名称。看起来就是这样。除了使用ForeignKey之外,我还需要null和blank set,以便它可以是可选的。