gpt4 book ai didi

Python - 使用 auth.User 模型作为 OneToOneField 的 Django 查询

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

我使用 auth.User 模型来获取登录信息,并使用自定义 UserProfile 模型来获取所有用户的个人资料数据。

auth.User.username 是一个随机字符串。和 UserProfile.user 是相同的字符串。

当尝试查询数据库表“UserProfile”时,出现以下错误:

ValueError: invalid literal for int() with base 10: '3df69698-c97d-11e7-a924-b0c0905e8512'

模型.py

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

class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=256, default=None)
last_name = models.CharField(max_length=256, default=None)
...

def __str__(self):
return str(self.user)

View .py

from .models import UserProfile
from django.contrib.auth.models import User

def get_users(request):
data = json.loads(request.body.decode('utf-8'))
user_id = escape(data['id'])

# error occurs here
user_pref = UserProfile.objects.get(user=user_id)

当尝试查询数据库并使用字符串与 auth.User 对象进行比较时,就会出现问题。我不知道如何解决这个问题?

最佳答案

该字符串应该是用户名吗?如果是这样,您应该显式查询该字段:

UserProfile.objects.get(user__username=user_id)

关于Python - 使用 auth.User 模型作为 OneToOneField 的 Django 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47295781/

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