Реверс для 'topic' не найден. 'topic' не является допустимым именем функции представления или шаблона (еще одно)
Я знаю, что подобных постов, как этот, довольно много, но я все еще не могу разобраться 😭. Вот код в шаблоне 'topics', который связывает каждую отдельную 'topic' с ней (также код, вызывающий ошибку):
<a href = "{% url 'topic' topic.id %}">{{ topic }}</a>
Ошибка:
django.urls.exceptions.NoReverseMatch: Reverse for 'topic' not found. 'topic' is not a valid view function or pattern name.
Здесь urls.py:
urlpatterns=[
#your paths go here
path('', views.index, name='index'), # home page
path('topics/', views.topics, name='topics'),
path('topics/<int:topic_id>/', views.topics, name='topics') # add id arguemnt since each entry is linked to topic by id
]
Вот функция topic в файле views.py:
def topic(request):
topic = Topic.objects.get(id=topic_id)
entries = topic.entry_set.order_by('-date_added') # minus sign indicates reverse order
context = {'topic':topic, 'entries':entries}
return render(request, 'learning_logs/topic.html', context)
Спасибо за любую помощь! Дайте мне знать, если есть еще какой-нибудь код, который я должен включить.
Посмотрите на второй путь - вам нужно имя topic
, а не topics
path('topics/', views.topics, name='topics'),
path('topics/<int:topic_id>/', views.topics, name='topic') <<<---THIS
И в views
может быть с topic_id
:
def topic(request, topic_id):