Ошибка 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()
Другие вопросы по тегам