2024-06-26 04:43:40 发布
网友
我需要用一些额外的字段扩展django用户。我在那里找到了两种不同的方法
class UserProfile(models.Model): user = models.OneToOneField(User) #other fields
或者
class UserProfile(models.Model): user = models.ForeignKey(User) #other fields
他们不一样吗?同步后,我发现mysql数据库没有什么不同
正如@Daniel Roseman所说,这是两种不同类型的rdbms关系。
你会发现它在你将拥有的情况下是有区别的(可能是错误的) 给定用户的多个配置文件。在这种情况下myuser.get_profile()将提高 一个MultipleObjectsReturned异常,因为它实际上是在引擎盖下执行一个^{}查询。
myuser.get_profile()
MultipleObjectsReturned
不,你为什么这么想?外键是一对多关系(即用户可以有多个配置文件)。顾名思义,one to one是一对一的关系——用户只能有一个配置文件,这听起来更像。
正如@Daniel Roseman所说,这是两种不同类型的rdbms关系。
你会发现它在你将拥有的情况下是有区别的(可能是错误的) 给定用户的多个配置文件。在这种情况下} 查询。
myuser.get_profile()
将提高 一个MultipleObjectsReturned
异常,因为它实际上是在引擎盖下执行一个^{不,你为什么这么想?外键是一对多关系(即用户可以有多个配置文件)。顾名思义,one to one是一对一的关系——用户只能有一个配置文件,这听起来更像。
相关问题 更多 >
编程相关推荐