#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 в любой день, и я совершенно уверен, что кто-нибудь поможет (конечно, вам нужно убедиться, что ваш вопрос ясен и по теме для переполнения стека).