У меня есть пользовательский декоратор на вид, и я должен кэшировать этот вид после обработки некоторых переменных запроса. Мой декоратор код как этотDjango custom decorator с ошибкой cache_page
def custom_dec(view_func):
@wraps(view_func, assigned=available_attrs(view_func))
def wrapper(request,filters,*args,**kwargs):
# do some processing on request and filters
return csrf_exempt(cache_page(900, view_func))
return wrapper
и я применил декоратор как:
@custom_dec
def myview(request,filters,*args,**kwargs):
# view code here
Проблема заключается в запуске этого кода дает мне ошибку при прохождении промежуточного программного обеспечения:
Исключение Тип : AttributeError
Исключительное значение: объект «функция» не имеет атрибута «status_code»
Когда i посмотрите на ответ, это функция myview, а не ответ вида.
Ответ <function myview at 0xb549e534>
Что не так в моем коде?
UPDATE: код работает нормально, если я изменяю функцию возврата в функцию warpper на return view_func
, что означает, что я должен делать что-то неправильно при применении декоратора страницы кэша.
Вы возвращаете объект HttpResonse с вашего взгляда? Опубликуйте полный код просмотра здесь как есть. –
@SrinivasReddyThatiparthy: да, код просмотра работает без этого декоратора. –
Нет. В этом случае это не работает. вам нужно вернуть объект HttpResponse из этого представления, даже если вы кешируете. –