Кэширование представления на основе функций Django Rest Framework приводит к игнорированию классов разрешений.Python

Программы на Python
Anonymous
Кэширование представления на основе функций Django Rest Framework приводит к игнорированию классов разрешений.

Сообщение Anonymous »

У меня возникла странная проблема: мое кэширование представления на основе функций конфликтует с примененными к нему классами разрешений. Декораторы для представления следующие:

Код: Выделить всё

@cache_page(3600)
@api_view(['GET'])
@permission_classes((APIKeyPermission,))
def function_based_view(request):
# function-based view code here...
Проблема в следующем: когда я пытаюсь получить доступ к представлению через HTTP GET, если оно еще не кэшировано, для этого потребуется выполнить APIKeyPermission и выдать ошибку 401. . Это правильное поведение. После успешного кэширования представления любой HTTP-запрос GET может успешно получить доступ к представлению без предоставления каких-либо необходимых разрешений. Важно отметить, что после кэширования представления декоратор @permission_classes, кажется, ничего и представление даже не возвращается к DEFAULT_PERMISSION_CLASSES< /code>, как указано в файле settings.py (который в данном случае даже более строгий, чем один класс разрешений, указанный в декораторе метода @permission_classes).
Коротко: как только представление кэшируется, к нему можно получить доступ без применения к нему каких-либо классов разрешений.
Как это исправить, чтобы классы разрешений правильно применяются к кэшированным представлениям?

Подробнее здесь: https://stackoverflow.com/questions/784 ... asses-to-b

Вернуться в «Python»