Получение последней записи по id в Django Serializer не работает должным образом
Я пытаюсь получить ID последней записи в классе ActiveSession
. Я протестировал приведенное ниже представление и оно показывает нормальные результаты на обычной странице, но когда я пытаюсь реализовать то же самое в моем API, я продолжаю получать 'ActiveSession' object is not iterable
.
Вот модель:
class ActiveSession(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True, null=True)
log = models.ManyToManyField(Log, related_name='savedlogs')
Вот serializers.py
class ActiveSessionSerializer(serializers.ModelSerializer):
class Meta:
model= ActiveSession
fields = '__all__'
Вот api.views
@api_view(['GET'])
@permission_classes([AllowAny])
def getActiveSession(request, **kwargs):
user = get_object_or_404(User, username=request.user)
print(user)
last_active_session = ActiveSession.objects.filter(user=user).latest('id')
serializer = ActiveSessionSerializer(last_active_session, many=True)
print(serializer)
return Response(serializer.data)
вот трассировка:
Traceback (most recent call last):
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\django\views\generic\base.py", line 103, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
raise exc
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\decorators.py", line 50, in handler
return func(*args, **kwargs)
File "C:\Users\User\Desktop\Project\api\views.py", line 67, in getActiveSession
return Response(serializer.data)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\serializers.py", line 768, in data
ret = super().data
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\serializers.py", line 253, in data
self._data = self.to_representation(self.instance)
File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\serializers.py", line 686, in to_repr File "C:\Users\User\Desktop\Project\venv\lib\site-packages\rest_framework\serializers.py", line 686, in to_repr
esentation
return [
TypeError: 'ActiveSession' object is not iterable
Мой вопрос:
Почему один и тот же код работает на веб-странице, а при отправке его в качестве API возвращается ошибка not iterable. Что это значит и как это исправить?