我正在使用Django 2.1 `
from django.shortcuts import render,redirect,get_object_or_404
from .forms import PostUrl
from .models import UrlLink
def total_url(request):
urls=UrlLink.objects.all()
return render(request,'core/shorturl.html',{'urls':urls})
def url_list(request,pk):
url = get_object_or_404(UrlLink,pk=pk)
return render(request,'core/url_detail.html',{'url':url})
def url_new(request):
if request.method == "POST":
form=PostUrl(request.POST)
if form.is_valid():
url=form.save()
return redirect('total_url')
else:
form=PostUrl()
return render(request,'core/url_list.html',{'form':form})
`
但是当我提交表格时我得到了错误 NoReverseMatch位于/ 找不到“ total_url”的反向按钮。 “ total_url”不是有效的视图函数或模式名称。
这是我的网址文件 `
from django.urls import path
from . import views
urlpatterns=[
path('',views.url_new,name='url_list'),
path('<int:pk>/',views.url_list,name='url_detail'),
path('all/',views.total_url,name='totalUrl')
]
`
答案 0 :(得分:1)
Django重定向可以采用:
很明显,您使用的是视图名称,这里的问题是您需要在URLPatterns中指定视图名称,但不能直接使用视图函数作为视图名称。
例如: path('books /',views.BookListView.as_view(),name ='books'),在这种情况下,此处的视图名称为'books'。
答案 1 :(得分:0)
您的视图名称是totalUrl
,而不是total_url
。