Не выводятся связанные поля django rest
Осваиваю Django и DRF. Расширил модель пользователя через создание UserModel и связывания с базовой моделью через
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="usermodel")
Столкнулся с проблемой: нужно по запросу получить текущего пользователя и все данные. На данный момент получается вывести или поля стандартной модели User, или новой UserModel, но никак не все вместе.
serialisers.py:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
class UserProfileSerializer(serializers.ModelSerializer):
user = serializers.StringRelatedField(read_only=True)
class Meta:
model = UserModel
fields = ('user', 'adress', 'department', 'phoneNumbers')
views.py:
class CurrentUserDetail(generics.RetrieveAPIView):
queryset = User.objects.all().select_related('usermodel')
permission_classes = [IsOwnerProfileOrReadOnly, IsAuthenticated]
def get(self, request):
serializer = UserProfileSerializer(request.user)
return Response(serializer.data)
Поля adress, department и phoneNumbers приходят, а поля из User - нет
Ответы (1 шт):
Попробуй в UserProfileSerializer добавить depth=1 в класс Meta
`class Meta:
model = UserModel
fields = ('user', 'adress', 'department', 'phoneNumbers')
depth = 1`
Или можешь изменить в UserProfileSerializer поле user, чтобы его обрабатывал UserSerializer:
user = UserSerializer(many=False)