使用 Django,我試圖顯示一個表單來編輯頁面上的內容。但是,在嘗試訪問 editpage 視圖時遇到以下錯誤
NoReverseMatch at /editpage/CSS/ Reverse for 'editpage' with keyword arguments '{'topic': ''}' not found。嘗試了 1 個模式:['editpage\/(?P[^/] )\/$']
這里的“CSS”是通過 urls.py 中的 str:topic 從鏈接地址中提取的示例。
我認為問題出在我在 editpage.html 中的表單操作上,我在其中參考了 editpage url,并且嘗試了多種組合,但無法顯示。洗掉表單允許鏈接顯示沒有錯誤。任何幫助深表感謝。
網址.py
from django.urls import path
from . import views
urlpatterns = [
path("editpage/<str:topic>/", views.editpage, name="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 %}
視圖.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()
})
先感謝您!
uj5u.com熱心網友回復:
試試這個。問題是你忘記在背景關系中傳遞主題,從我看到你沒有正確處理表單(你必須制作一個GET并POST處理表單)。如果你需要更多關于這個的幫助,讓我知道。
def editpage(request, topic):
return render(request, "encyclopedia/editpage.html", {"form": EditPageForm(),"topic":topic})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/351588.html
