Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与用户身份验证的一对多关系_Python_Django - Fatal编程技术网

Python 与用户身份验证的一对多关系

Python 与用户身份验证的一对多关系,python,django,Python,Django,我看了很多例子,但不知道如何在正确链接当前经过身份验证的用户时做到这一点。基本上,我想向db提交一个更新,其中包含一个通过唯一用户id或用户名关联的项目 用户是唯一的,但他们可以在观察列表中包含许多项。提交的用户当前已登录并通过身份验证 型号.py 视图.py 如何使用身份验证链接两个模型 更新1 后的错误回溯 class UserProfile(models.Model): user = models.OneToOneField(User) 及 在观察列表模型中,您需要做的是创建属

我看了很多例子,但不知道如何在正确链接当前经过身份验证的用户时做到这一点。基本上,我想向db提交一个更新,其中包含一个通过唯一用户id或用户名关联的项目

用户是唯一的,但他们可以在观察列表中包含许多项。提交的用户当前已登录并通过身份验证

型号.py

视图.py

如何使用身份验证链接两个模型

更新1 后的错误回溯

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”