Ошибка NoReverseMatch, но не удалось найти ее источник

#python #django #django-urls

Вопрос:

Я относительно новичок в Django и начал создавать свой первый список дел. Однако я получаю ошибку всякий раз, когда пытаюсь создать ссылку с надписью: NoReverseMatch в /aufgabenzettel/

Я отчаянно пытался исправить это в течение последних пяти часов и очень расстроен, потому что ошибка, похоже, вызвана одной строкой кода… Пожалуйста, помогите! Это было бы потрясающе, и я действительно ценю каждый намек!

Вот код:

urls.py

 from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
    path("<int:aufgabenzettel_id>", views.details, name="details")
]
 

views.py

 from django.shortcuts import render

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
    })
 

models.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}"
 

layout.html

 <!DOCTYPE html>
<html lang="de">
    <head>
        <title>Aufgabenzettel</title>
    </head>
    <body>
        {% block body %}
        {% endblock %}
    </body>

</html>
 

index.html

 {% extends "aufgabenzettel/layout.html" %}

{% block body %}
    <h1>Meine Aufgaben</h1>
    <ul>
        {% for Aufgabeselbst in Aufgabenliste %}
            <li>
                <a href="{% url 'details' aufgabenzettel.id %}"> 
                    Aufgabe {{ Aufgabeselbst }}
                </a>
            </li>
        {% endfor %}
    </ul>
{% endblock %}
 

details.html

 {% extends "aufgabenzettel/layout.html" %}

{% block body %}
    <h1> Aufgabe {{ details }}</h1>
    <a href="{% url 'index' %}">Zurück zu Aufgabe</a>
{% endblock %}
 

Точная ошибка:

Обратный для «подробностей» с аргументами «(«,)» не найден. 1 шаблон(ы) попробовал: [‘aufgabenzettel/(?P<aufgabenzettel_id>[0-9] )$’]

Всякий раз, когда я удаляю строку <a href="{% url 'details' aufgabenzettel.id %}"> в index.html программа работает отлично…

Дайте мне знать, если вам понадобится дополнительная информация!!

Я действительно ценю вашу помощь!

Комментарии:

1. У вас переменная цикла есть Aufgabeselbst , и вы, следовательно, скорее всего, захотите написать {% url 'details' Aufgabeselbst.id %} (нет, aufgabenzettel.id так aufgabenzettel как в контексте ее нет)

2. @AbdulAzizBarkat Большое тебе спасибо, Абдул! Ваше решение решило проблему! Я однажды попробовал это с помощью {% url ‘подробности’ aufgabeselbst.id %} но я не сделал капитализацию aufgabeselbst.id чтобы Aufgabeselbst.id. Ты спас мне жизнь! Есть ли какой-нибудь шанс связаться с вами на случай, если мне еще понадобится ваша помощь? С наилучшими пожеланиями!

3. Рад быть вам полезным. 😉 Что касается поддержания связи, вы можете задать вопрос в SO в любой день, и я совершенно уверен, что кто-нибудь поможет (конечно, вам нужно убедиться, что ваш вопрос ясен и по теме для переполнения стека).