Как разрешить возможные конфликтующие урлы при рендеринге веб-страниц

Когда я пытаюсь загрузить страницу, вместо нее я получаю другую страницу... Я пытаюсь загрузить страницу wikiPage, как показано в описании урлов, которое следует далее, но вместо нее получаю другой урл, ссылающийся на представление newPageb, хотя оба урла имеют одинаковые параметры и вызывается тот, который первый по порядку, Но как мне сделать их разными, чтобы я мог вызывать их независимо от порядка.

Вот мой urls.py...

app_name= "encyclopedia"
urlpatterns = [
    path("", views.index, name="index"),
    path("randomPage", views.randomPage, name="randomPage"),
    path("<str:pagetitle>", views.newPageb, name="newPageb"),
    path("<str:pagetitle>", views.wikiPage, name="wikiPage"),
    path("<str:z>", views.wikiPage, name="wikiPage"),
    path("newPage", views.newPage, name="newPage"),
    path("<str:pageSearch>", views.search, name="search"),
    path("", views.search, name="search")
Here are the conflicting views..
def newPageb(request, pagetitle)
...
...
def wikiPage(request, pagetitle):
...
...

и вот шаблон, в котором был объявлен параметр pagetitle

{% extends "encyclopedia/layout.html" %}
"

{% block title %}
    Encyclopedia
{% endblock %}

{% block body %}
    <h1> {{title}} </h1>
    <ul>
        {% for pagetitle in entries %}
        <li>
           <a href="{% url 'encyclopedia:wikiPage' pagetitle=pagetitle%}"> {{ pagetitle }} </a>
        </li>
          {{entrie|safe}}
        {% endfor %}
    </ul>

{% endblock %}

потому что у вас есть два совпадающих маршрута, из-за чего django выбирает первый подходящий шаблон для url-адреса и не смотрит на следующие адреса.

path("<str:pagetitle>", views.newPageb, name="newPageb"),    
path("<str:pagetitle>", views.wikiPage, name="wikiPage")

для решения этой проблемы необходимо изменить один из адресов. пример

path("new-page/<str:pagetitle>", views.newPageb, name="newPageb"),    
path("<str:pagetitle>", views.wikiPage, name="wikiPage")
Вернуться на верх