Django - как я могу возвращать данные из представления динамически?
Я создал API с помощью Django, и у меня есть представление на основе класса, где я использую кэш с TTL 1,5 секунды.
Вот пример:
class Sales_View(APIView):
http_method_names = ['get']
@method_decorator(cache_page(1.5))
def get(self, request, format=None):
...
return JsonResponse({'page': page, 'records': len(data), 'data': data}, safe=False)
Я хотел бы использовать другую функцию с другим TTL кэша, когда в URL указан определенный параметр sale_value, вот другой пример:
class Sales_View(APIView):
http_method_names = ['get']
@method_decorator(cache_page(1.5))
def get(self, request, format=None):
...
return JsonResponse({'page': page, 'records': len(data), 'data': data}, safe=False)
@method_decorator(cache_page(30))
def get_large_sales(self, request, format=None):
...
return JsonResponse({'page': page, 'records': len(data), 'data': data}, safe=False)
Когда запрашивается URL 127.0.0.1:8000/api/sales/?some_query=<some_value>&..., данные должны быть возвращены get. Когда запрашивается URL 127.0.0.1:8000/api/sales/?sale_value=, данные должны быть возвращены get_large_sales, поскольку он содержит параметр sale_value.
Подводя итог, мне нужно иметь возможность использовать другое время истечения кэша, когда запрос к моему API содержит определенный параметр. Возможно ли это сделать без использования redirect?