Представление Django выводит 404 страницу вместо заданного html-шаблона

Я работаю над проектом вики на django. Я пытаюсь отобразить 'add.html' с помощью вида add, но вместо этого он отправляет меня на 404. Все остальные представления работают нормально. Как мне исправить add?

views.py

from django.shortcuts import render
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from django import forms
import re
from . import util


def index(request):
    return render(request, "encyclopedia/index.html", {
        "entries": util.list_entries()
    })

def detail(request, entry):
        #if search based on title returns result
    if util.get_entry(entry):
        content = util.get_entry(entry)
        return render(request, "encyclopedia/details.html",
                      {
                          "title": entry,
                          "content": content
                      })
    else:
        return render(request, "encyclopedia/404.html", {
              'entry': entry
        })

def add(request):
    return render(request, "encyclopedia/add.html")




  urls.py:
from django.urls import path

from . import views

app_name = "wiki"
urlpatterns = [
    path("", views.index, name="index"),
    path("<str:entry>/", views.detail, name="entry"),
    path("add/", views.add, name="add"),
]

в вашем urls.py, <str:entry>/ путь определен перед add/ путем.

это заставляет django интерпретировать add/ как динамический параметр входа для представления detail вместо того, чтобы направить его в представление add.

django document

urlpatterns = [
    path("", views.index, name="index"),
    path("add/", views.add, name="add"),  # place "add/" before "<str:entry>/"
    path("<str:entry>/", views.detail, name="entry"),
]
Вернуться на верх