Django: AttributeError: у объекта 'str' нет атрибута 'objects' - PullRequest
0 голосов
/ 04 февраля 2020

Я получаю ошибку при извлечении значения из моей таблицы AUTH_USER_MODEL. любая помощь, будет оценена.

views.py

AUTH_USER_MODEL = settings.AUTH_USER_MODEL

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

serializers.py

AUTH_USER_MODEL = settings.AUTH_USER_MODEL

class UserSerializer(serializers.ModelSerializer):
   class Meta:
       model = AUTH_USER_MODEL
       fields = [
           "username",
           "email",
       ]

1 Ответ

3 голосов
/ 04 февраля 2020

Вместо этого используйте метод 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)

settings.AUTH_USER_MODEL - это просто строка, которую можно использовать при определении модели (например, ForeignKey принимает строку), но не тогда, когда вам нужен фактический класс.

См. this для подробного объяснения.

...