Я не могу разработать код для отображения одного конкретного сообщения и связанных с ним комментариев.Проблема может быть в views.py или в URL.
Я просмотрел несколько источников без каких-либо результатов.Я новичок в кодировании и чувствую, что упускаю какой-то важный момент.Посты и комментарии создаются правильно, и все комментарии получают правильный post_id.
Мой models.py настроен так:
class Post(models.Model):
title = models.CharField(max_length=1000)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('blog-home')
class Comment(models.Model):
cid = models.AutoField(primary_key=True)
author = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
comment = models.TextField()
comment_date = models.DateTimeField(default=timezone.now)
def save(self, *args, **kwargs):
super(Comment, self).save(*args, **kwargs)
def __str__(self):
return self.comment
def get_absolute_url(self):
return reverse('blog-home')
Мой views.py настроен так:
class PostDetailView(DetailView):
model = Post
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['comment_list'] = Comment.objects.filter(post=WHAT SHOULD GO HERE?)
return context
Мне нужно пройти сообщение.id или первичный ключ сообщения в фильтре выше.Может кто-нибудь объяснить, что это должно быть?
URL-адрес, используемый для доступа к деталям публикации, выглядит следующим образом:
path('post/<int:pk>/', PostDetailView.as_view(), name='post-detail')
Я получаю представление сведений о сообщении в виде автора, заголовка и содержания.сообщения, когда у меня есть следующее в views.py:
class PostDetailView(DetailView):
model = Post
Шаблон для этого, как показано ниже:
{% extends "blog/base.html" %}
{% block content%}
<article class="media content-section">
<img class="rounded-circle article-img" src="{{object.author.profile.image.url}}">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="{% url 'user-posts' object.author.username %}">{{ object.author }}</a>
<small class="text-muted">{{ object.date_posted|date:"F d, Y P e" }}</small>
{% if object.author == user %}
<div><a class="btn btn-secondary btn-sm m-1 mb-1" href="{% url 'post-update' object.id%}">Update</a>
<a class="btn btn-danger btn-sm m-1 mb-1" href="{% url 'post-delete' object.id%}">Delete</a></div>
{% endif %}
</div>
<h2 class="article-title">{{ object.title }}</h2>
<p class="article-content">{{ object.content }}</p>
</div>
</article>
{% for comment in comment_list %}
<div class='article-content'>
<p>{{comment}}</p>
</div>
{% endfor %}
{% endblock %}
Как мне взять post.id или pk сообщения и использовать его для фильтрации комментариев, относящихся только к этому конкретному сообщению?
Кроме того,Как правильно настроить шаблон для рендеринга набора запросов?