Как использовать таймаут сессии в django rest view?

Я реализую представление для игры, используя APIView в Django REST. Я очень новичок в Django и никогда не делал этого раньше, поэтому я не уверен, как это реализовать.

Основная идея заключается в том, что игра длится всего 5 минут. Я отправляю пользователю ресурс и создаю объект сессии. Это представление. должно быть недоступно через 5 минут. Существует ли такая вещь, как таймаут представления?

Будет ли тогда таймаут сессии работать и для запроса post или мне нужно реализовать его и там?

Вот мое мнение:

Прокомментированный код в конце - это то, что я думал сделать. Могу ли я вообще сделать это непосредственно в представлении? Как еще я могу это сделать и протестировать?

views.py

class GameView(APIView):
    """
    API View that retrieves the game,
    retrieves an game round as well as a random resource per round
    allows users to post tags that are verified and saved accordingly to either the Tag or Tagging table
    """

    def get(self, request, *args, **kwargs):

        current_score = 0
        if not isinstance(request.user, CustomUser):
            current_user_id = 1
        else:
            current_user_id = request.user.pk

        random_resource = Resource.objects.all().order_by('?').first()
        resource_serializer = ResourceSerializer(random_resource)

        gameround = Gameround.objects.create(user_id=current_user_id,
                                             gamesession=gamesession,
                                             created=datetime.now(),
                                             score=current_score)

        gameround_serializer = GameroundSerializer(gameround)

        return Response({'resource': resource_serializer.data,
            'gameround': gameround_serializer.data,
        })
        # TODO: handle timeout after 5 min!
        # if :
        # return Response({'resource': resource_serializer.data, 'gameround': gameround_serializer.data,})
        # else:
        # return Response(status=status.HTTP_408_REQUEST_TIMEOUT)

* Тестирование закомментированного кода в Postman всегда приводит к 408_request_timeout.

Вернуться на верх