Я пытаюсь написать собственный декоратор для представления 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