Ich habe versucht, einen Anker mit einer anderen Seite in Django zu verknüpfen. Aber ich bekomme den Fehler "Reverse für 'animals.all_animals' nicht gefunden. 'Animals.all_animals' ist keine gültige View-Funktion oder kein gültiger Pattern-Name." Ich habe versucht, mehrere Möglichkeiten, es zu tun .. kein Erfolg. Ich habe eine App namens Tiere und ich versuche, die Liste der Tiere in der durch einen Anker auf der Homepage anzuzeigen. Ich habe hier meine Django-Dateien angehängt.django url-Tag, keine gültige Ansichtsfunktion oder Mustername
from django.shortcuts import render, get_object_or_404
from .models import Animal
def animal_list(request):
animals = Animal.objects.all()
return render(request, 'animals/animal_list.html', {'animals': animals})
// and here is the html
{% for animal in animals %}
<h1>{{animal.species}}</h1>
<p>{{animal.description}}</p>
{% endfor %}
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.animal_list, name='all_animals'),
url(r'^(?P<pk>\d+)/$', views.animal_detail, name='all_details'),
]
{% load static from staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Animals Site</title>
<link href="{% static 'css/base.css'%}" rel="stylesheet">
</head>
<body>
{% block content %}
<nav>
<a href="{% url 'animals.all_animals'%}">Animal List</a>
</nav>
<a></a><h2>I love cats!</h2>
{% endblock content %}
{% block listbar %}
<ul>
<li>Sphynx</li>
<li>Catto</li>
<li>Bengal</li>
</ul>
{% endblock listbar %}
</body>
</html>
{% block listcolor%}
<style>
h2{
font-family: 'Calibri';
color: blue;
}
</style>
{% endblock listcolor%
'Tiere' ist kein registrierter Namensraum –
Dann '" {% url 'all_ Tiere '%} "sollte tun. Sie haben die enthaltenen URLs nicht aus der App benannt. –
Ja, es hat so funktioniert. Aber zum Beispiel, wenn ich zugreifen möchte: "url (r '^ (? P \ d +)/$', ansichten.animal_detail, name = 'alle_details')," es funktioniert nicht. Es sagt 1 Muster versucht: ['Tiere/(? P \\ d +)/$'] –