Как использовать django @lazy decorator?

78
11

Сначала попробуйте декор django.utils.функциональный.lazy. Моя функция возвращает два списка, поэтому я украшаю его с помощью @lazy (list, list). Это простая функция jane, а не метод/свойство класса.

Я получаю объект " прокси " не вызываемым ", когда я пытаюсь вызвать результирующую украшенную функцию.

спросил(а) 2021-01-25T19:16:04+03:00 4 месяца, 4 недели назад
1
Решение
98

Я не думаю, что вы можете использовать Django ленивый как декоратор. Вы можете использовать его как вызов функции:

lazy_function = lazy(f, type)

где f - это функция, которую вам нужно сделать ленивой, а type - ожидаемый тип данных.

Также как вы возвращаете два списка? Подобно:

def a():
return [], []

Если да, то технически вы возвращаете кортеж, поэтому вы должны использовать ленивый, как:

lazy_f = lazy(f, tuple)

ответил(а) 2021-01-25T19:16:04+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема