Я получаю сообщение об ошибке NoReverseMatch at /animal_types/10/
Значение исключения: Reverse for 'animal' with arguments '('',)' not found. 1 pattern(s) tried: ['animal\\/(?P<animal_id>[0-9]+)\\/$']
Вот мой код просмотров для животного:
@login_required
def animal(request, animal_id):
"""shows a single animal and the schedule associated"""
animal = Animal.objects.get(id=animal_id)
schedule = animal.schedule_set.order_by('-date_added')
context = {'animal':animal, 'schedule':schedule}
return render(request, 'zoo_animal_feeders/animal.html', context)
Любая помощьоценили.Дайте мне знать, если мне нужно будет включить дополнительную информацию.
Вот мои основные URL:
urlpatterns = [
path('admin/', admin.site.urls),
path('users/', include('users.urls')),
path('', include('zoo_animal_feeders.urls')),
]
Вот специфичный для приложения URL, который пытается выполнить:
app_name = 'zoo_animal_feeders'
urlpatterns = [
#This is for the home page
path('', views.index, name='index'),
#Show animal types
path('animal_types/', views.animal_types, name='animal_types'),
#Page that will access a certain category of animals
path('animal_types/<int:animal_type_id>/', views.animal_type, name='animal_type'),
#Page for accessing an animal (and its schedule)
path('animal/<int:animal_id>/', views.animal, name='animal'),
#Page for adding a new animal type
path('new_animal_type/', views.new_animal_type, name='new_animal_type'),
#Page for adding a new animal
path('new_animal/<int:animal_type_id>/', views.new_animal, name='new_animal'),
#page for adding a new schedule
path('new_schedule/<int:animal_id>/', views.new_schedule, name='new_schedule'),
#page for editing an animal
path('edit_animal/<int:animal_id>/', views.edit_animal, name='edit_animal'),
#page for editing a schedule
path('edit_schedule/<int:schedule_id>/', views.edit_schedule, name='edit_schedule'),
]
Шаблон для / animal_types /:
{% extends 'zoo_animal_feeders/base.html' %}
{% block header %}
<h2>{{ animal_type }}</h2>
{% endblock header %}
{% block content %}
<p><a href="{% url 'zoo_animal_feeders:new_animal' animal_type.id %}">add new animal</a></p>
{% for animal in animals %}
<div class="panel panel-default">
<div class="panel-heading">
<h3>
{{ animal.name }}
<small>
<a href="{% url 'zoo_animal_feeders:animal' schedule.id %}">see schedule</a>
<a href="{% url 'zoo_animal_feeders:edit_animal' animal.id %}">edit animal</a>
</small>
</h3>
</div>
<div class="panel-body">
{{ animal.text|linebreaks }}
</div>
</div>
{% empty %}
<li>There are no animals for this animal type yet.</li>
{% endfor %}
{% endblock content %}
Это не позволит мне включить трассировку, потому что это слишком много кода (это очень длинная трассировка).