Не могу вывести комментарий на сайт в Django

Рейтинг: 0Ответов: 1Опубликовано: 08.04.2023

Сут в том, чтобы данные из моей таблицы comment выводились на страницу profile,но почему - то не получается, пробовал ставить related_name='comments' но выдает ошибку, помогите пожалуйста! В мою таблицу данные заносятся в comment.html, но не выводятся в profile.html

models.py

class Comment(models.Model):
    name = models.CharField(max_length=80)
    body = models.TextField()
    email = models.EmailField()

views.py

def comment(request):
    if request.method == 'POST':
        form = CommentForm(data=request.POST)
        if form.is_valid():
            form.save()
            return redirect('profile')
    else:
        form = CommentForm(data=request.POST)

    return render(request, 'comment.html', {'form': form})

forms.py

class CommentForm(forms.ModelForm):
    email = forms.EmailField()
    body = forms.TextInput

    class Meta:
        model = Comment
        fields = ['name', 'body', 'email']

profile.html

<div class="comments_user">
  <b>{{ comment.name }}</b>  <span>{{ comment.body }}</span>
  <p>{{ comment.email}}</p>
</div>

views.py

@login_required
def profile(request):
    return render(request, 'profile.html')

Ответы

▲ 0Принят

Я не совсем понимаю что именно вы хотите реализовать, но просто передать все комментарии в шаблон можно следующим способом:

@login_required
def profile(request):
    comment = Comment.objects.all()
    context = {'comment': comment}
    return render(request, 'profile.html', context)

В шаблоне надо пройтись по всем объектам:

<div class="comments_user">
   {% for i in comment %}
   <b>{{ i.name }}</b>  <span>{{ i.body }}</span>
   <p>{{ i.email}}</p>
   {% endfor %}
</div>