gpt4 book ai didi

python - Django "Manager isn' t 可通过 UserProfile 实例访问”

转载 作者:行者123 更新时间:2023-11-28 21:41:10 27 4
gpt4 key购买 nike

这是我的views.py

if request.user.is_authenticated():
changepass = request.user.userprofile.objects.get(user=request.user)
if changepass.force_password_change == True:
changepass.force_password_change = False
changepass.save()
return HttpResponseRedirect('/login/register/')
elif changepass.force_password_change == False:
return HttpResponseRedirect('/main/')

根据 Django,这一行 changepass = request.user.userprofile.objects.get(user=request.user) 是问题所在。我正在尝试从 UserProfile 访问 force_password_change。正如标题所示,我收到错误消息 Manager isn't accessible via UserProfile instances

这是我的 models.py 供引用。

class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
force_password_change = models.BooleanField(default=True)

def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)

post_save.connect(create_user_profile, sender=User)

最佳答案

当您完成 request.user.userprofile 时,您已经拥有了 UserProfile 实例,

此时,您有一个 UserProfile 实例。你不能从那里使用对象管理器(.objects)。

你只需要

changepass = request.user.userprofile

另一种获取userprofile对象的方法是做

UserProfile.objects.get(user=request.user)

关于python - Django "Manager isn' t 可通过 UserProfile 实例访问”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45043973/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com