2017-08-07 2 views
0

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%

Antwort

1

Sie benötigen einen Doppelpunkt kein Punkt in der Schreibweise:

<a href="{% url 'animals:all_animals' %}">Animal List</a> 

Oder falls die darin enthaltenen URLs Ihrer App nicht Namespaces sind:

<a href="{% url 'all_animals' %}">Animal List</a> 
+0

'Tiere' ist kein registrierter Namensraum –

+0

Dann '" {% url 'all_ Tiere '%} "sollte tun. Sie haben die enthaltenen URLs nicht aus der App benannt. –

+0

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 +)/$'] –

Verwandte Themen