Ich habe versucht, dies für eine Weile jetzt herauszufinden, aber ich fühle mich wie ich das Framework nicht gut genug kenne, um dies selbst zu debuggen.NoReverseMatch in Django [Neuling]
Im Grunde erstellen ich eine kleine Blog-Stil-Site und ich versuche, eine Liste von Beiträgen zu erstellen, die auf die Seite verlinken können, um den Beitrag selbst zu lesen.
Ich habe eine for-Schleife in meiner Vorlage:
templates/home.py
<h1>Home Page</h1>
<p>welcome to the ven home page, {{ username }}!</p>
<a href="{% url 'users:logout' %}">Click here to log out</a>
<br>
<a href="{% url 'posts:create' %}">Click here to create a post</a>
<h2>Posts:</h2>
{% for post in posts %}
<div>
<hr>
<a href="{% url 'posts:show' id=post.id %}"><h4>{{post.title}}</h4></a>
<p>{{post.body}}</p>
<p><i>{{post.tags}}</i></p>
</div>
{% endfor%}
Es ist die Linie <a href="{% url 'posts:show' id=post.id %}"><h4>{{post.title}}</h4></a>
, die das Problem verursacht. Ich
Reverse for 'show' with keyword arguments '{'id': 1}' not found. 1
pattern(s) tried: ['posts/(?P<post_id>\\d+)/view/$']
den Fehler bekommen hier ist meine Urls Datei
url(r'^$', views.CreateFormView.as_view(), name='create'),
url(r'^(?P<post_id>\d+)/view/$', views.show_post, name='show')
Die Methode Verknüpfung erstellen funktioniert
und hier ist die Ansicht, die die Vorlage lädt:
def home(request):
if not request.user.is_authenticated:
return redirect('users:login')
posts = Post.objects.all()
username = request.user.username
return render(request, 'ven/home.html', {'username': username, 'posts':
posts})
Wenn mehr Informationen benötigt werden, dann lass es mich wissen und ich werde es zur Verfügung stellen. Alle anderen Antworten haben gesagt, dass dieser Fehler mit dem Namespace zu tun hat, aber es funktioniert gut mit dem create link, also bin ich ratlos.
Vielen Dank im Voraus!
Danke! es scheint so einfach zu sein, aber ich habe es komplett übersehen –