我有一个返回与用户对应的数据的 View ,但是当我尝试查找用户时出现此错误:
Type str has no object method
文件views.py
from .models import Question, User
@api_view(['POST'])
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
def answers_view(request, *args, **kwargs):
userstring = request.data["name"]
try:
user0 = User.objects.get(username=userstring)
except ObjectDoesNotExist:
user0 = "NotFound"
print("USER: ", user0, flush = True)
文件模型.py
from django.db import models
# Create your models here.
import random
from django.conf import settings
from django.db import models
from django.db.models import Q
User = settings.AUTH_USER_MODEL
最佳答案
AUTH_USER_MODEL
设置是一个字符串,这通常用于引用用户模型,例如在 ForeignKey
中,这样做的好处是在那一刻,用户模型不必加载(还)。
为了获得对模型的引用,您可以使用 get_user_model()
function [Django-doc] :
from .models import Question
from django.contrib.auth import <b>get_user_model</b>
@api_view(['POST'])
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
def answers_view(request, *args, **kwargs):
userstring = request.data['name']
try:
user0 = <b>get_user_model()</b>.objects.get(username=userstring)
except ObjectDoesNotExist:
user0 = 'NotFound'
print('USER: ', user0, flush=True)
关于django - 为什么用户模型具有字符串类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67806721/