python - 无法追溯 NoReverseMatch 错误:未找到带有参数 '('',)' 的“更新”的反向
问题描述
我再次面临与 NoReverseMatch 相关的错误。尽管如此,我还是找不到源头。这是我的代码:
网址.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("<int:aufgabenzettel_id>", views.details, name="details"),
path("add/", views.add, name="add"),
path("delete/<int:aufgabenzettel_id>", views.delete, name="delete"),
path("edit/<int:aufgabenzettel_id>", views.edit, name="edit"),
path("update/<int:aufgabenzettel_id>", views.update, name="update")
]
模型.py
from django.db import models
# Create your models here.
class Aufgabenzettel(models.Model):
Aufgabeselbst = models.CharField(max_length=64)
def __str__(self):
return f"{self.Aufgabeselbst}"
视图.py
from django.http.response import HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from .models import Aufgabenzettel
# Create your views here.
def index(request):
return render(request, "aufgabenzettel/index.html", {
"Aufgabenliste":Aufgabenzettel.objects.all()
})
def details(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
return render(request, "aufgabenzettel/details.html", {
"details":aufgabenzettel
})
def add(request):
if request.method == "POST":
Aufgabe = request.POST["Hinzufügen"]
Aufgabenzettel.objects.create(Aufgabeselbst=Aufgabe)
return HttpResponseRedirect(reverse("index"))
return render(request, "aufgabenzettel/add.html")
def delete(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
aufgabenzettel.delete()
return HttpResponseRedirect(reverse("index"))
def edit(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
return render(request, "aufgabenzettel/edit.html", {
"details":aufgabenzettel
})
def update(request):
if request.method == "post":
Aufgabejetzt = request.POST["Bearbeiten"]
Aufgabejetzt.save()
return HttpResponseRedirect(reverse("index"))
return render(request, "aufgabenzettel/edit.html")
索引.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>Meine Aufgaben</h1>
<ol>
{% for Aufgabeselbst in Aufgabenliste %}
<li>
<a href="{% url 'details' Aufgabeselbst.id %}">
{{ Aufgabeselbst }}
</a>
<form action="{% url 'delete' Aufgabeselbst.id %}" method="post">
{% csrf_token %}
<button type="submit">Löschen</button>
</form>
<form action="{% url 'edit' Aufgabeselbst.id %}" method="post">
{% csrf_token %}
<button type="submit" value="{{ details }}">Bearbeiten</button>
</form>
</li>
{% endfor %}
</ol>
<h2>
<a href="{% url 'add' %}">Neue Aufgabe erstellen</a>
</h2>
{% endblock %}
添加.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>Füge eine neue Aufgabe hinzu</h1>
<form action="{% url 'add' %}" method="post">
{% csrf_token %}
<input type="text" name="Hinzufügen" placeholder="Neue Aufgabe">
<button type="submit">Hinzufügen</button>
</form>
{% endblock %}
编辑.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<form action="{% url 'update' aufgabenzettel.id %}" method="post">
{% csrf_token %}
<input type="text" name="Bearbeiten" value="{{details}}">
<button type="submit">Bearbeiten</button>
</form>
<a href="{% url 'index' %}">Zurück zu Aufgabe</a>
{% endblock %}
详细信息.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>{{ details }}</h1>
<a href="{% url 'index' %}">Zurück zu Aufgabe</a>
{% endblock %}
我尝试通过更新数据库来编辑现有任务。但是,会发生此错误:未找到带有参数“(”,)“的“更新”的反向。尝试了 1 种模式: ['aufgabenzettel/update/(?P<aufgabenzettel_id>[0-9]+)$']并且在 views.py 的第 33 行中标记了错误return render(request, "aufgabenzettel/edit.html", {
一如既往,我非常感谢每一个提示或解决方案!
解决方案
你需要更换
{% url 'update' aufgabenzettel.id %}
和
{% url 'update' details.id %}
推荐阅读
- arrays - 在C中为char数组赋值
- python - Python 3.9.5 和 Python 3.9.6 上 datetime.astimezone 的不同行为
- javascript - 加载脚本时出现内容安全策略错误
- windows - 为什么无法出现控制窗口?
- php - 失败:代码:404 值:未找到详细信息(如果有):未找到段“作业”Microsoft Azure [Blob 创建] PHP SDK 的资源
- notion-api - Notion API - Update Relation Support
- swift - SpriteKit SKScene not resizing correctly to fit iPhone 12
- javascript - Sum previous date values to today Date
- javascript - submit dynamically created forms / React
- rust - Rust tuple assignment