Не удается заставить ссылки работать в проекте Django
Library/urls.py|
urlpatterns = [
path('admin/', admin.site.urls),
path('catalog/',include('catalog.urls')),
path('',RedirectView.as_view(url='catalog/')),
path('accounts/', include('django.contrib.auth.urls')),
|Catalog/URL.PY|
urlpatterns = [
path('',views.index,name='index'),
path('',views.memb,name='memb'),
path('create_book/',views.BookCreate.as_view(),name='create_book'),
path('book/<int:pk>/',views.BookDetail.as_view(), name='book_detail'),
path('my_view/',views.my_view, name='my_view'),
|Catalog/View|
def memb(request):
return render(request, 'memb.html',context=context)
|Catalog/index.html|
<a href="memb.html">MEMBERS</a>
|Catalog/memb.html|
<li><a href="#news">News</a></li> Next menu option.
|ERROR|
Страница не найдена (404) Метод запроса: GET URL запроса: http://127.0.0.1:8000/catalog/memb.html. Используя URLconf, определенный в library.urls, Django попробовал эти шаблоны URL, в таком порядке: admin/ catalog/ [name='index'] catalog/ [name='memb'] catalog/ create_book/ [name='create_book'] catalog/ book/int:pk/ [name='book_detail'] catalog/ my_view/ [name='my_view'] счета/ Текущий путь, catalog/memb.html, не соответствует ни одному из этих путей.
Вы видите эту ошибку, потому что в файле настроек Django у вас стоит DEBUG = True. Измените это значение на False, и Django отобразит стандартную страницу 404
Говорит Запрос URL: http://127.0.0.1:8000/catalog/memb.html НЕ НАЙДЕН!
Почему он не соответствует пути: catalog/ [name='memb'] в URLS?
Я пробовал с .html и без него, разные варианты выбора имени, что угодно.
Помогите пожалуйста....Stuck!!!!!
Может ли это быть какой-то конфликт с Admin?
Пробовал прямые html ссылки... тот же эффект???
Конфликт возникает между этими двумя шаблонами (для данного URL: http://127.0.0.1:8000/catalog/):
path('',views.index,name='index'),
path('',views.memb,name='memb'),
Попробуйте это:
|Catalog/URL.PY|
urlpatterns = [
path('',views.index, name='index'),
path('memb/',views.memb, name='memb'),
path('create_book/',views.BookCreate.as_view(),name='create_book'),
path('book/<int:pk>/',views.BookDetail.as_view(), name='book_detail'),
path('my_view/',views.my_view, name='my_view'),
Теперь измените свой шаблон:
|Catalog/index.html|
<a href="{% url 'memb' %}">MEMBERS</a>
В django вам не нужно вставлять html имя файла в URL, а просто путь, который вы зарегистрировали в urls.py.