Django:AttributeError:'str'对象没有属性'objects'

sat*_*jit 1 django orm django-rest-framework

我在提取 AUTH_USER_MODEL 表中的值时遇到错误。任何帮助,将不胜感激。

视图.py

AUTH_USER_MODEL = settings.AUTH_USER_MODEL

class AllUser(ListAPIView):
    model = AUTH_USER_MODEL
    serializer_class = UserSerializer
    queryset = AUTH_USER_MODEL.objects.all()

Run Code Online (Sandbox Code Playgroud)

序列化器.py

AUTH_USER_MODEL = settings.AUTH_USER_MODEL

class UserSerializer(serializers.ModelSerializer):
   class Meta:
       model = AUTH_USER_MODEL
       fields = [
           "username",
           "email",
       ]
Run Code Online (Sandbox Code Playgroud)

dir*_*ten 5

使用get_user_model()方法代替(你可以导入它from django.contrib.auth import get_user_model):

from django.contrib.auth import get_user_model
User = get_user_model()

class AllUser(ListAPIView):
    model = User
    serializer_class = UserSerializer
    queryset = User.objects.all()  # or User.objects.filter(is_active=True)
Run Code Online (Sandbox Code Playgroud)

settings.AUTH_USER_MODEL只是一个字符串,可以在定义模型时使用(例如ForeignKey接受字符串),但在需要实际类时则不能使用。

请参阅以获得详细说明。