Ошибка QuerySet при замене представления сведений о пользователе в django_rest_auth
Я пытаюсь создать пользовательский профиль и профиль с django_rest_auth
и следовали документам в FAQ по созданию User Serializer, но я не уверен насчет изменения представления пользователя.
Теперь я попытался заменить UserDetailsView
в django_rest_auth
с пользовательским названием CustomUserDetailsView
, доступный для пользователей по аналогичному URL-адресу: url(r'^user/$', views.CustomUserDetailsView.as_view(), name=...)
, которая на данный момент является точной копией rest_auth.views.UserDetailsView
, но с serializer_class
назначенный пользовательскому UserDetailsSerializer, и я сталкиваюсь с ошибкой при выполнении вызова GET:
AssertionError: 'CustomUserDetailsView' should either include a
`queryset` attribute, or override the `get_queryset()` method.
Сообщение об ошибке совершенно ясно, что я должен делать, включая queryset
атрибут или переопределить get_queryset()
метод в моем пользовательском представлении UserDetailsView, но почему это не требуется в rest_auth.views.UserDetailsView
?
Большое спасибо за ваши ответы.
2 ответа
Это потому, что представление реализует get_object
который имеет приоритет над get_queryset
, Вот почему это работает.
Также в DRA вы можете просто переопределить USER_DETAILS_SERIALIZER
настройка вместо Посмотрите документы для получения дополнительной информации: http://django-rest-auth.readthedocs.io/en/latest/configuration.html
У вас models.py:
Удалить ниже строки:
from django.contrib.auth.models import User
Вместо этого есть строки ниже:
# Default user model may get swapped out of the system and hence.
#from django.contrib.auth.models import User
from django.contrib.auth import get_user_model
User = get_user_model()