私はログイン情報にauth.Userモデルを使用し、ユーザーのすべてのプロファイルデータに対してカスタムUserProfileモデルを使用しています。Python - Auth.UserモデルをOneToOneFieldとして使用するDjangoクエリ
auth.User.usernameはランダムな文字列です。 、UserProfile.userは同じ文字列です。
データベース・テーブル "のUserProfile" を照会しようとすると、私は次のエラーを取得する:
ValueError: invalid literal for int() with base 10: '3df69698-c97d-11e7-a924-b0c0905e8512'
models.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)
views.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オブジェクトと比較して文字列を使用します。私はこれを回避する方法を知らない?
はい、私は今、私はUserオブジェクト全体を誤ってクエリしています... – PhilS