Python 与用户身份验证的一对多关系
我看了很多例子,但不知道如何在正确链接当前经过身份验证的用户时做到这一点。基本上,我想向db提交一个更新,其中包含一个通过唯一用户id或用户名关联的项目 用户是唯一的,但他们可以在观察列表中包含许多项。提交的用户当前已登录并通过身份验证 型号.py 视图.py 如何使用身份验证链接两个模型 更新1 后的错误回溯Python 与用户身份验证的一对多关系,python,django,Python,Django,我看了很多例子,但不知道如何在正确链接当前经过身份验证的用户时做到这一点。基本上,我想向db提交一个更新,其中包含一个通过唯一用户id或用户名关联的项目 用户是唯一的,但他们可以在观察列表中包含许多项。提交的用户当前已登录并通过身份验证 型号.py 视图.py 如何使用身份验证链接两个模型 更新1 后的错误回溯 class UserProfile(models.Model): user = models.OneToOneField(User) 及 在观察列表模型中,您需要做的是创建属
class UserProfile(models.Model):
user = models.OneToOneField(User)
及
在观察列表模型中,您需要做的是创建属性user作为UserProfile的外键,就像将UserProfile与user链接一样 ---更新--- 请记住,request.user是一个用户实例,而不是UserProfile,在设置obj.user之前,您需要将UserProfile链接到该用户
obj.user = UserProfile.objects.get(user=request.user)
在观察列表模型中,您需要做的是创建属性user作为UserProfile的外键,就像将UserProfile与user链接一样 ---更新--- 请记住,request.user是一个用户实例,而不是UserProfile,在设置obj.user之前,您需要将UserProfile链接到该用户
obj.user = UserProfile.objects.get(user=request.user)
在观察列表模型中,您需要做的是创建属性user作为UserProfile的外键,就像将UserProfile与user链接一样 ---更新--- 请记住,request.user是一个用户实例,而不是UserProfile,在设置obj.user之前,您需要将UserProfile链接到该用户
obj.user = UserProfile.objects.get(user=request.user)
在观察列表模型中,您需要做的是创建属性user作为UserProfile的外键,就像将UserProfile与user链接一样 ---更新--- 请记住,request.user是一个用户实例,而不是UserProfile,在设置obj.user之前,您需要将UserProfile链接到该用户
obj.user = UserProfile.objects.get(user=request.user)
首先,User和UserProfile之间的关系应该是OneToOneField,而不是ForeignKey。然后,您就可以通过
request.user.userprofile
获取配置文件,并将其完全按照您正在执行的操作分配到您的监视列表中。首先,用户和用户配置文件之间的关系应该是OneToOneField,而不是ForeignKey。然后,您就可以通过request.user.userprofile
获取配置文件,并将其完全按照您正在执行的操作分配到您的监视列表中。首先,用户和用户配置文件之间的关系应该是OneToOneField,而不是ForeignKey。然后,您就可以通过request.user.userprofile
获取配置文件,并将其完全按照您正在执行的操作分配到您的监视列表中。首先,用户和用户配置文件之间的关系应该是OneToOneField,而不是ForeignKey。然后,您就可以通过request.user.userprofile
获取配置文件,并将其完全按照您正在执行的操作分配到您的观察列表中。免责声明:我在Python聊天中帮助OP解决了此问题。只是把要点贴在这里
您确实将字段类型更改为OneToOneField
,但没有迁移更改。因此,.get()
方法正在抱怨,因为OneToOneField
将为数据库中的该字段启用UNIQUE
标志。因为您没有迁移,Django抛出了一个完整性错误,因为您的Django模型说该字段应该是唯一的,但DB说它不是唯一的
运行迁移,您应该能够看到South正在设置
unique=True
。这应该可以解决问题。免责声明:我在Python聊天时帮助OP解决了这个问题。只是把要点贴在这里
您确实将字段类型更改为OneToOneField
,但没有迁移更改。因此,.get()
方法正在抱怨,因为OneToOneField
将为数据库中的该字段启用UNIQUE
标志。因为您没有迁移,Django抛出了一个完整性错误,因为您的Django模型说该字段应该是唯一的,但DB说它不是唯一的
运行迁移,您应该能够看到South正在设置
unique=True
。这应该可以解决问题。免责声明:我在Python聊天时帮助OP解决了这个问题。只是把要点贴在这里
您确实将字段类型更改为OneToOneField
,但没有迁移更改。因此,.get()
方法正在抱怨,因为OneToOneField
将为数据库中的该字段启用UNIQUE
标志。因为您没有迁移,Django抛出了一个完整性错误,因为您的Django模型说该字段应该是唯一的,但DB说它不是唯一的
运行迁移,您应该能够看到South正在设置
unique=True
。这应该可以解决问题。免责声明:我在Python聊天时帮助OP解决了这个问题。只是把要点贴在这里
您确实将字段类型更改为OneToOneField
,但没有迁移更改。因此,.get()
方法正在抱怨,因为OneToOneField
将为数据库中的该字段启用UNIQUE
标志。因为您没有迁移,Django抛出了一个完整性错误,因为您的Django模型说该字段应该是唯一的,但DB说它不是唯一的
运行迁移,您应该能够看到South正在设置
unique=True
。这应该可以解决问题。检查更新的帖子,老实说,我在发布之前看了太久的页面,我想我自己更加困惑了列用户id不是唯一的其中“user\u id”整数非空引用“mysiteapp\u userprofile”(“id”)
检查更新的帖子,老实说,我在发布之前看了太久的页面,我想我自己更困惑了列user\u id不是唯一的其中“user\u id”integer not NULL引用“mysiteapp\u userprofile”