Django NoReverseMatch位于http://127.0.0.1:8000/boards/1/new/

时间:2020-10-23 15:12:55

标签: django url

这是我的网站网址:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('boards.urls'))
]

这是我的应用程序网址:

urlpatterns = [
    path('',views.home,name='home'),
    path('boards/<int:pk>',views.board_topic,name='board_topic'),
    path('boards/<int:pk>/new/',views.new,name='new_topic')
]

这是应用程序的观看次数:

from django.shortcuts import render,get_object_or_404
from django.http import HttpResponse,Http404
from .models import Board
# Create your views here.

def home(request):
    board = Board.objects.all()
    return render(request,'home.html',{
        'board':board,
    })
def board_topic(request,pk):
    # try:
    #     board = Board.objects.get(pk=pk)
    # except:
    #     raise Http404
    board = get_object_or_404(Board,pk=pk)
    return render(request,'topics.html',{
        'board':board
    })
def new(request,pk):
    boards = get_object_or_404(Board, pk=pk)
    return render(request, 'new_topic.html', {
        'board' : boards
    })

当我尝试转到http://127.0.0.1:8000/boards/1/new/时,会发生此错误:

enter image description here

请帮助我。

1 个答案:

答案 0 :(得分:0)

这是我如何摆脱错误的方法

在我的应用的网址中:

urlpatterns = [
    path('',views.home,name='home'),
    path('boards/<int:pk>',views.board_topic,name='board_topic'),
    path('boards/<int:pk>/new/',views.new,name='new_topic')
]

在第二条路径中,我使用的是name ='board_topic' 在我的模板文件中,我使用url作为href ='url“ board.pk board_topics”' 所以这就是为什么我得到那个错误。 谢谢所有响应的人