![](/img/trans.png)
[英]NoReverseMatch Error Reverse for 'profile' with no arguments not found
[英]Couldn't trace back NoReverseMatch Error: Reverse for 'update' with arguments '('',)' not found
我再次面臨與 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 %}
add.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 %}
我嘗試通過更新數據庫來編輯現有任務。 但是,會發生此錯誤:未找到 arguments '('',)' 的“更新”反向。 嘗試了 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 %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.