Как изменить URL-адрес в среде Django

#python #python-3.x #django #django-views #http-status-code-404

Вопрос:

Я пытаюсь создать веб-сайт с помощью Django, и у меня появилось такое сообщение об ошибке

 Request URL:    http://127.0.0.1:8000/store.html

Using the URLconf defined in greatkart.urls, Django tried these URL patterns, in this order:

    admin/
    [name='home']
    store/
    ^media/(?P<path>.*)$

The current path, store.html, didn't match any of these.

 

Проблема в том, что когда я пытался нажать кнопку, она всегда печаталась ./store.html не в ./store
, это мой html-код для кнопки

 <a href="./store.html" class="btn btn-outline-primary float-right">See all</a>
 

И это мой Джанго для urls.py (главная)

 urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home, name='home'),
    path('store/', include("store.urls"))
]   static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
 

Это urls.py(магазин)

 urlpatterns = [
    path('', views.store, name='store'),
    path('<slug:category_slug>/', views.store, name='product_by_category'),
]
 

views.py

 def store(request, category_slug = None):
    return render(request, 'store/store.html', context)
 

У кого-нибудь есть какие-нибудь идеи? Я хочу исправить это, не меняя HTML-код, потому что я пробовал это, и когда я дважды нажимаю на кнопки, которые делают некоторые ошибки, потому что URL-адрес печатает ./store дважды

Ответ №1:

Здесь URL-адрес должен быть абсолютным(начиная с / адреса локального хоста, исключающего вас) и не должен включать .html . Таким образом, ваш Url-адрес должен быть : /store и тег привязки должен быть : <a href="/store" class="btn btn-outline-primary float-right">See all</a>

Комментарии:

1. о, я вижу проблему, я включаю ./магазин, а не /магазин, так что это печать /магазин всякий раз, когда я нажимаю кнопку спасибо за вашу помощь

2. @MarcusAurelius , я рад, что это помогло. Подумайте о том, чтобы проголосовать за ответ и принять его как решение. Пожалуйста 🙂