Пытаюсь вывести ответ на конкретный вопрос в Джанго из БД по слагу, но ничего не выводится
Пишу сайт, где пользователи могут задавать вопросы другим пользователям и получать на них ответы. Пытаюсь в шаблон вывести ответ на конкретный вопрос пользователя из БД по слагу, однако ничего не работает. Не могу понять как передать слаг как параметр функции objects.get. Код представлен ниже.
models.py
class Question(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name="URL")
detail = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('detail', kwargs={'slug': self.slug})
class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
detail = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.detail
urls.py
from django.urls import path
from . import views
from .views import QuestionView, SearchView, QuestionDetailView, AnswerView
urlpatterns = [
path('', QuestionView.as_view(), name='forum'),
path('search/', SearchView.as_view(), name='search'),
path('question/<slug:slug>/', QuestionDetailView.as_view(), name='detail'),
path('answer/', AnswerView.as_view(), name='answer')
]
views.py
class QuestionView(ListView):
model = Question
template_name = 'forum/forum.html'
context_object_name = 'questions'
ordering = ['-date_posted']
paginate_by = 1
class QuestionDetailView(DetailView):
model = Question
template_name = 'forum/detail.html'
class AnswerView(ListView):
model = Answer
template_name = 'forum/detail.html'
context_object_name = 'answers'
def get_queryset(self):
quest = Question.objects.get(slug=slug)
return Answer.objects.filter(question=quest)
templates/detail.html
{% for answer in answers %}
<div class="col-11">
<p>{{ answer.detail }}</p>
<p><a href="#" class="mr-3">BigBossData</a><span>5 комментариев</span></p>
</div>
{% endfor %}