Django - ссылки неправильно разрешаются в меню
Я разрабатываю локально Django страницу и имею некоторые проблемы с выделенными меню.
при наведении курсора на "moje projekty" я вижу следующую ссылку 127.0.0.1:8080/portfolio/, я нажимаю и страница открывается
когда я навожу курсор во второй раз, он показывает: 127.0.0.1:8080/portfolio/portfolio/, я нажимаю и страница открывается
.когда теперь я навожу курсор в 3-й раз, он показывает: 127.0.0.1:8080/portfolio/portfolio/portfolio/, я нажимаю и появляется ошибка:
Страница не найдена (404) Метод запроса: GET URL запроса: http://127.0.0.1:8080/portfolio/portfolio/portfolio/. Используя URLconf, определенный в my_site.urls, Django попробовал эти шаблоны URL, в таком порядке:
admin/ [name='home'] about_me/ [name='aboutme'] portfolio/ [name='portfolio'] posts/slug:the_slug/ [name='post_detail'] summernote/ ^media/(?P.)$ portfolio/ [name='home'] portfolio/ about_me/ [name='aboutme'] portfolio/ portfolio/ [name='portfolio'] портфолио/ posts/slug:the_slug/ [name='post_detail'] портфолио/ summernote/ портфолио/ ^media/(?P.)$ about_me/ Текущий путь, portfolio/portfolio/portfolio/, не соответствует ни одному из этих путей.
base.html:
Проектurls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
path('portfolio/', include('blog.urls')),
path('about_me/', include('blog.urls')),
]
urls.py app:
from . import views
from django.urls import path
from django.conf.urls import include
urlpatterns = [
path('', views.PostList.as_view(), name='home'),
path('about_me/', views.Aboutme.as_view(), name='aboutme'),
path('portfolio/', views.Portfolio.as_view(), name='portfolio'),
path('posts/<slug:the_slug>/', views.PostDetail.as_view(), name='post_detail'),
path('summernote/', include('django_summernote.urls')),
]
# to jest dla wysiwyg
# add condition in django urls file
from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
Вопросы:
- почему ссылка меняется во второй раз, когда я нажимаю?
- почему я получаю эту ошибку после 3-го щелчка?
Привет :) пути /portfolio/ и /portfolio/portfolio/ правильные, но когда вы используете htm href='portfolio/' без прямого слеша, они не абсолютные. html просто добавляет его к существующему. Так что если вы находитесь на example.com/portfolio/ и щелкаете по этому href, то добавляется еще один 'portfolio/'.
просто используйте в href :
<a class="nav-link text-black font-weight-bold" href="{% url 'blog:portfolio' %}">
PS. в urls.py для проекта не нужно два пути к одному приложению
