django - 为什么 Django 在我的 URL 模式中添加美元符号?(无反向匹配)
问题描述
我花了一整天的时间试图修复这个错误,但我不知道该怎么做。我正在尝试创建一个新的降价文件并在提交表单后将用户重定向到新页面。我尝试更改 URL 名称,尝试更改变量名称,但没有任何效果。问题可能是 Django 在我的 URL 模式中添加了一个美元符号,但我不确定,因为我试图为 URL 提供现有页面的值。我将不胜感激这个问题的详细解释。我的意见.py:
def entry(request, entry):
entryPage = util.get_entry(entry)
if entryPage is None:
message = messages.warning(request, 'There is not a page with this name.')
return render(request, 'encyclopedia/error.html', {
'entryTitle': entry,
'message': message
})
else:
return render(request, 'encyclopedia/entry.html',{
'entry': markdowner.convert(entryPage),
'title': entry
})
def new(request):
if request.method == 'POST':
# Get the form
form = Post(request.POST)
if form.is_valid():
# Clean the form
title = form.cleaned_data['title']
lower_title = form.cleaned_data['title'].lower()
text = form.cleaned_data['textarea']
entries = util.list_entries()
# Check for existing entry
for entry in entries:
if lower_title == entry.lower():
message = messages.warning(request, "There is already a page with this name.")
context = {
'message': message,
"form": Search(),
"post": Post()
}
return render(request, 'encyclopedia/new.html',context)
# Create and redirect to new entry
else:
util.save_entry(title,text)
return HttpResponseRedirect(reverse("entry", args=[title]))
else:
return render(request, 'encyclopedia/new.html', {
"form": Search(),
"post": Post()
})
我收到的错误:
NoReverseMatch at /new
Reverse for 'entry' with arguments '('NewTitle',)' not found. 1 pattern(s) tried: ['entry$']
我的 urls.py:
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:entry>", views.entry, name="title"),
path("new", views.new, name="new"),
path("error", views.error, name="error"),
path("entry", views.entry, name="entry")
]
此外,当我检查 Django Traceback 中的本地变量时,我看不到标题。这可能是因为迭代只执行一次,直到错误发生。
解决方案
您忘记为entry
您的条目 URL 模式添加参数:
urlpatterns = [
# …,
path('entry/<str:entry>/', views.entry, name='entry')
]
推荐阅读
- python - 列表列表和插入
- firebase - 我需要有关如何针对 Firestore 建立网站并处理安全访问的编程建议
- r - R中的手动交互图线性回归
- python - 如果字典项的键不在列表中,如何使用 Python 删除它们
- spring-data-jpa - 使用 JPQL 更新不同行的不同列
- flutter - Flutter - Dart - setState 在与 Future<> 一起用于异步函数时不会重新加载状态
- c# - GetClientCert 未在 IIS 托管 api 上使用
- python - 找不到文件错误:[WinError 2] Python 目录错误
- java - 在 Eclipse 中创建一个包,相当于创建一个新文件夹吗?
- node.js - 上传文件前 Express Multer 验证请求