gpt4 book ai didi

django - “用户”对象没有属性 'UserProfile'

转载 作者:行者123 更新时间:2023-12-01 12:26:12 26 4
gpt4 key购买 nike

我尝试按照 https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#extending-the-existing-user-model 中的示例进行操作关于如何扩展用户模型。但是我无法检索我附加到用户的模型数据。

模型

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save

class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
ip = models.IntegerField(default=0)

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

post_save.connect(create_user_profile, sender=User)

获取我的用户对象
user = auth.authenticate(username=username, password=password)
g = user.UserProfile.ip
print(g)

用户被正确获取,我能够获取标准用户的所有数据。但 user.UserProfile 将导致:
Internal Server Error: /Crowd/login/
Traceback (most recent call last):
File "C:\Anaconda3\Lib\site-packages\django\core\handlers\base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Anaconda3\Lib\site-packages\django\core\handlers\base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Rasmus\workspace\Crowd\src\Cr\views.py", line 35, in login
g = user.UserProfile.ip
AttributeError: 'User' object has no attribute 'UserProfile'
[05/Sep/2016 04:32:46] "POST /Crowd/login/ HTTP/1.1" 500 69185

我检查了我的数据库,我可以看到 UserProfile 中有一行与 User 有关系。所以 UserProfile 正在正确创建(我假设)。

最佳答案

您应该访问 user 的用户配置文件与 user.userprofile ,不是 user.UserProfile .试试看 the docs for one-to-one relationships .它应该让 Django 期望你如何使用这种关系变得更加清晰。
另请注意,来自 UserProfile一边,您可以访问User.user不是 .User .您将看到,这是命名约定始终与 Django 中的关系一起使用。同样,默认情况下,数据库中的表将命名为 myapp_userprofile。而不是 myapp_UserProfile .

关于django - “用户”对象没有属性 'UserProfile',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39323204/

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