Как использовать allow_required декораторы в представлениях на основе классов django

Я тоже делаю добавленное приложение и попадаю в ту же проблему, что и вы. Информация о том, как правильно ее решить, очень мало. Но я нашел фреймворк под названием mixare - он позволяет вам создавать AR-приложение для Android. Вы должны обязательно посмотреть на источник - он выглядит довольно многообещающим. Надеюсь, это вам поможет.

146
задан laike9m 17 July 2014 в 04:42
поделиться

1 ответ

Это было некоторое время теперь, и теперь Django изменился так.

Проверка здесь на то, как украсить основанное на классах представление.

https://docs.djangoproject.com/en/2.2/topics/class-based-views/intro/#decorating-the-class

документация не включала пример "декораторов, который берет любой аргумент". Но декораторы, которые берут аргументы, похожи на это:

def mydec(arg1):
    def decorator(func):
         def decorated(*args, **kwargs):
             return func(*args, **kwargs) + arg1
         return decorated
    return deocrator

поэтому, если мы должны использовать mydec в качестве "нормального" декоратора без аргументов, мы можем сделать это:

mydecorator = mydec(10)

@mydecorator
def myfunc():
    return 5

Так точно так же для использования permission_required с method_decorator

мы можем сделать:

@method_decorator(permission_required("polls.can_vote"), name="dispatch")
class MyView:
    def get(self, request):
        # ...
0
ответ дан 23 November 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: