NoReverseMatch: Обратное соответствие для '...' не найдено. '...' не является допустимой функцией представления или именем шаблона - для пути, включающего имя

У меня такая настройка:

# Django Project: core/urls.py
def redirect_index(request):
    return redirect(reverse('account'), permanent=False)

urlpatterns = [
    path('', redirect_index, name='index'),
    path('account/', include('identity.urls'), name='account'),
]
# Django App: identity/urls.py
app_name = 'identity'

def redirect_index(request):
    return redirect(reverse('identity:login'), permanent=False)

def view_login(request):
    context = {"test_context": 'This is a test context'}
    return render(request, "common/base.html", context)

urlpatterns = [
    path('', redirect_index, name='index'),
    path('login', view_login, name='login'),
]

Когда я посещаю http://localhost:8000/, я получаю эту ошибку:

NoReverseMatch at /
Reverse for 'account' not found. 'account' is not a valid view function or pattern name.

Мне нужно вот что:

Если пользователь переходит по ссылке /, она должна перенаправлять на /account/, а оттуда - на /account/login. Я знаю, что есть 2 редиректа, но я хотел бы иметь их отдельно, чтобы я мог настроить каждый отдельно. Но я получаю описанную выше ошибку. Похоже, что при наличии include имя не может быть изменено на противоположное.

Конечно, когда я использую reverse('identity:index') или reverse('identity:login') вместо reverse('account') в core/urls.py, это работает.

Нет ли способа сделать это так, как я описал ранее?

Вернуться на верх