URL-адреса Python Django не работают, как они должны? - PullRequest
0 голосов
/ 10 сентября 2018
from django.contrib import admin
from django.urls import path

import main.views
urlpatterns = [
    path('', main.views.index, name="index"),
    path('story/', main.views.story, name="story"),
    path('haxs/', main.views.haxs, name="haxs"),
    path('contact/', main.views.contact, name="contact"),
    path('admin/', admin.site.urls),
]

.

<li class="nav-item"><a class="nav-link" href="/">home</a></li>
<li class="nav-item"><a class="nav-link" href="story/">our story</a></li>
<li class="nav-item"><a class="nav-link" href="haxs/">haxs</a></li>
<li class="nav-item"><a class="nav-link" href="contact/">contact us</a></li>

Я работаю над сайтом Python Django, и мои URL не работают должным образом.Я включил свой urls.py и навигационные ссылки, которые одинаковы на каждой странице.Из дома я могу перейти на все остальные страницы, а с других страниц я могу вернуться домой.

Моя проблема в том, когда я иду, например, из-за того, что haxs связаться с ним не работает, и код URL становится "http://127.0.0.1:8000/haxs/story/", когда он должен быть просто" http://127.0.0.1:8000/story/".Это похоже на то, что с нашей историей / haxs / contact я не могу переходить между ними страницами.Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Добавляя к ответу @neverwalkaloner, я бы порекомендовал добавить пространства имен к вашим URL. Это помогает с удобочитаемостью, потому что вы можете точно определить, из какого приложения вы вызываете этот URL.

Я предполагаю, что имя вашего приложения - основное.

from django.contrib import admin
from django.urls import path

import main.views

    app_name = 'main' 
    urlpatterns = [
        path('', main.views.index, name="index"),
        path('story/', main.views.story, name="story"),
        path('haxs/', main.views.haxs, name="haxs"),
        path('contact/', main.views.contact, name="contact"),
        path('admin/', admin.site.urls),
    ]

    <li class="nav-item"><a class="nav-link" href="{% url 'main:story' %}">our story</a></li>

Надеюсь, это поможет!

0 голосов
/ 10 сентября 2018

Вы можете просто исправить это, добавив URL с /:

<li class="nav-item"><a class="nav-link" href="/story/">our story</a></li>

Но лучше использовать именованную функцию URL Джанго :

<li class="nav-item"><a class="nav-link" href="{% url 'story' %}">our story</a></li>
...