У меня есть проект под названием «my_project», и в этом проекте у меня есть приложение под названием «my_app», поэтому у меня есть два файла urls.py. Все мои URL-адреса для my_app находятся в файле urls.py и работают правильно, кроме одного. Это файл "download_file". Мой сайт работает, когда он включен в urls.py my_project, но когда он находится в urls.py my_app, я получаю NoReverseMatch
ошибку при загрузке страницы.
Я не знаю, почему этот URL работает только тогда, когда он находится в папке url моего основного проекта. Я подозреваю, что это как-то связано с регулярным выражением, хотя я не могу этого понять.
Пользователь будет на этой странице:
http://127.0.0.1:8000/user_area/username/classes
затем щелкните ссылку «скачать» :
<a href="{% url 'download_file' file_path=item.instance.user_file %}" target='_blank'>{{ item.instance.filename }}</a>
my_project.py
urlpatterns = [
# reference to my_app
re_path(r'^user_area/(?P<username>[\w-]+)/', include('my_app.urls')),
]
# this works
url(r'^download_file/(?P<file_path>(.+)\/([^/]+))$', users_views.DownloadFile.as_view(), name='download_file'),
]
my_app.py
urlpatterns = [
path('classes', views.classes, name='classes'),
# if I remove the url from my_project.py this one returns NoReverseMatch on page load
url(r'^download_file/(?P<file_path>(.+)\/([^/]+))$', users_views.DownloadFile.as_view(), name='download_file'),
Спасибо.