У меня есть приложение для блога, где у меня есть раздел комментариев. Комментировать может только авторизованный пользователь. Я хочу добавить возможность добавлять ответы на комментарии во вложенном формате, но я понятия не имею, как.
Вот модели, которые включены в часть комментариев:
class Article(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()
publish_date = models.DateField(auto_now_add=True)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
tag = models.ManyToManyField(Tag)
thumbnail = models.ImageField(blank=True)
content = HTMLField()
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-page', kwargs={'id': self.id})
@property
def get_comments(self):
return self.comment_content.all()
class Comment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
timestamp = models.DateTimeField(auto_now_add=True)
article = models.ForeignKey(Article, related_name='comment_content', on_delete=models.CASCADE)
content = models.TextField()
def __str__(self):
return self.user.username
Форма модели, которую я создал:
class CommentForm(forms.ModelForm):
content = forms.CharField(
widget = forms.Textarea(
attrs= {
'class': 'form-control',
'id': 'message',
'cols': '30',
'rows': '10',
}
)
)
Способ представления каждого комментария:
{% for comment in article.get_comments %}
<li class="comment">
<div class="comment-body">
<h3>{{ comment.user.username }}</h3>
<div class="meta mb-3">{{ comment.timestamp }}</div>
<p>{{ comment.content }}</p>
<p><a href="#" class="reply">Reply</a></p>
</div>
</li>
{% endfor %}
Я использовал @property для отображения комментариев. Нужно ли менять общий способ представления комментариев? Может ли кто-нибудь помочь мне с созданием ответов? (Кстати, кнопка ответа ничего не делает. Она пришла с шаблоном, над которым я работаю)