Пользовательский декоратор Django - всякий раз, когда он вызывается, Django вызывает ошибку кругового импорта - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь написать собственный декоратор для представления Django, который очень похож на login_required, за исключением того, что он делает что-то еще, когда обнаруживает, что пользователь не вошел в систему.

Сначала я поместил его в файл custom.py в тот же каталог, что и мои представления, но он возвращал «циклическую ошибку импорта» каждый раз, когда пытался импортировать ее в представления. Затем я создал собственную папку, и она вернула ту же ошибку. В крайнем случае я скопировал и вставил его в папку django.contrib.auth.decorators. Когда я импортировал весь этот файл, он не возвращал циклическую ошибку импорта, но когда я попытался вызвать декоратор, это произошло. Почему он это делает? Я проверил файлы и уверен, что не делаю циклический импорт.

Ошибка:

   raise ImproperlyConfigured(msg.format(name=self.urlconf_name))
django.core.exceptions.ImproperlyConfigured: The included URLconf 'mysite.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.

Просмотр импорта:

from django.shortcuts import render
from django.views.decorators.http import require_http_methods
import django.contrib.auth.decorators

Декоратор:

def check_login(test_func):
    def decorator(view_func):
        @wraps(function)
        def _wrapped_view(request, *args, **kwargs):
            if test_func(request.user.is_authenticated):
                return view_func(request, *args, **kwargs)
            else:
                print("not written yet")
        return _wrapped_view
    return decorator
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...