【发布时间】:2021-12-20 13:02:00
【问题描述】:
使用 Django,我试图显示一个表单来编辑页面上的内容。但是我在尝试访问编辑页面视图时遇到了以下错误
NoReverseMatch 在 /editpage/CSS/ 未找到关键字参数“{'topic':''}' 的“editpage”的反向操作。尝试了 1 种模式:['editpage\/(?P[^/]+)\/$']
这里的“CSS”是通过 urls.py 中的 str:topic 从链接地址中提取的示例。
我认为问题在于我在 editpage.html 中的表单操作,我在其中引用了 editpage url,我尝试了多种组合,但无法显示。删除表单允许链接显示没有错误。非常感谢任何帮助。
urls.py
from django.urls import path
from . import views
urlpatterns = [
path("editpage/<str:topic>/", views.editpage, name="editpage"),
]
editpage.html
{% extends "encyclopedia/layout.html" %}
{% block title %}
Edit Page
{% endblock %}
{% block body %}
<h1>Edit page</h1>
<form action="{% url 'editpage' topic=topic %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="submit">
</form>
{% endblock %}
views.py
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from django import forms
from . import util
class EditPageForm(forms.Form):
title = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'topic', 'class': 'form-control'}))
article = forms.CharField(widget=forms.Textarea(attrs={'placeholder': 'Existing article', 'class': 'form-control'}))
def editpage(request, topic):
return render(request, "encyclopedia/editpage.html", {"form": EditPageForm()
})
提前谢谢你!
【问题讨论】: