Пытаюсь вернуться от представления деталей на основе классов к представлению на основе функций, но получаю ошибку NoReverseMatch
Я создаю проект билета с некоторой функциональностью комментариев, и я знаю, что это звучит странно, так как тенденция обычно заключается в том, чтобы перейти от функций к классам. Моя проблема заключается в том, что поскольку детальный вид предназначен только для отображения, попытка включить систему комментариев на той же странице оказывается довольно сложной. Сейчас я просто пытаюсь воспроизвести детальную часть билета и продолжаю получать эту ошибку
Traceback
Я думал, что отображение только детальной части будет таким же простым, как это представление на основе функции
post_single(request, slug)
ticket = Ticket.objects.get(slug=slug)
return render(request, 'tickets/improved.html', {'ticket':ticket})
Но я продолжаю получать эту ошибку, я не уверен, что не так.
Вот общий вид, основанный на классе
class TicketDetailView(DetailView):
model = Ticket
urls.py
urlpatterns = [
path('main/', TicketListView.as_view(), name='ticket-home'),
path('main/<slug:slug>/', views.post_single, name='post_single'),
path('user/<str:username>', UserTicketListView.as_view(), name='user-tickets'),
path('tickets/<int:pk>/', TicketDetailView.as_view(), name='ticket-detail'),
path('tickets/new/', TicketCreateView.as_view(), name='ticket-create'),
path('tickets/<int:pk>/update/', TicketUpdateView.as_view(), name='ticket-update'),
path('tickets/<int:pk>/delete/', TicketDeleteView.as_view(), name='ticket-delete'),
path('about/', views.about, name='tickets-about'),
]
Любая помощь будет высоко оценена
Добавьте context_object_name
к вашему представлению.
class TicketDetailView(DetailView):
model = Ticket
context_object_name = "ticket"
Без такой установки, в шаблоне вы можете ссылаться на него как на object
, а не с помощью __class__
имени модели.