Я пробирался сквозь кучу NoReverseMatch
вопросов здесь, на SO и в других местах, но безрезультатно.
У меня есть метод просмотра, clean
и внутри в redirect
:
def clean(request, aid):
if request.method == 'POST':
return redirect(enrich,
permanent=True,
aid=account.id)
else:
return render(request, 'clean.html')
И метод представления, называемый enrich
:
def enrich(request, aid):
return HttpResponse('this be the enrich page')
Он имеет path
в urls.py
:
path('<aid>/enrich/', views.enrich, name='enrich'),
И все же,когда я вызываю redirect
в методе clean
, Python с любовью говорит мне:
NoReverseMatch at /app2/<aid>/clean/
Reverse for 'app2.views.enrich' not found. 'app2.views.enrich' is not a valid view function or pattern name.
, что оставляет меня в замешательстве, поскольку app2.views.enrich
действительно существует.Что мне делать?Путь существует и работает правильно (если я посещаю /app2/<aid>/add/
, меня приветствует правильный HTTP-ответ), но при redirect он, похоже, на самом деле не работает, как и ни одно из других представлений..
Некоторый контекст:
- В этом проекте Django есть 3 приложения
- Все эти приложения доказали свою работоспособность вместе со своими представлениями
- Управление версиями - Django 2.1 и Python 3.7.1
Отказ от ответственности: на самом деле приложение не называется app2, это просто заполнитель.