1
我有一个UserProfile类的设置,并通过Django管理控制台创建了一个用户配置文件,但我似乎无法从我的视图访问userprofile。错误是:RelatedObjectDoesNotExist at/mcadb/ 用户没有用户配置文件。有什么想法,我在这里失踪?我看过例子,我看不到它。当我加载视图时,该错误似乎在test = user.userprofile视图中。谢谢。Django扩展用户UserProfile:用户没有用户配置文件
models.py
class UserProfile(models.Model):
my_id = models.CharField(max_length=8)
user = models.OneToOneField(User)
views.py
from django.contrib.auth.models import User
from .models import UserProfile
@login_required
def index(request):
user = request.user
test = user.userprofile
尝试使用:'test = user.userprofile_set' – Gocht
@Gocht,不,OneToOneField不会映射到_set。此外,如果名称错误,它会是一个AttributeError。 @Carrie,尝试一下调试。添加'print(user);打印UserProfile.objects.all())'在测试行上方,以便在控制台上查看UserProfile对象是否确实存在。如果没有,请尝试创建新的用户和用户配置文件,使用新用户登录并查看问题是否存在。 – gbs
@gbs,感谢您的建议。我正在使用AWS进行开发,所以我不确定打印是否应该起作用,但看起来似乎没有。但是我可以将{{user.userprofile.my_id}}添加到我的用于索引视图的模板中,并且可以正确打印。因此存在用户和用户配置文件。 – Carrie