Создал модель, создал форму в forms.py, сделал views и вставил всё в html, но на сайте отображается только кнопка. Я бы хотел сам решить этот вопрос, но не понимаю в каком месте у меня ошибка.
models.py:
from django.contrib.auth import get_user_model
from django.db import models
class Post(models.Model):
title = models.CharField('Заголовок', max_length = 200)
body = models.TextField('Текст')
date = models.DateTimeField('Дата', auto_now_add = True)
author = models.ForeignKey(
get_user_model(),
on_delete=models.CASCADE,
)
def __str__(self):
return self.title
class Comment(models.Model):
title = models.CharField('Заголовок', max_length=140)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
comment = models.TextField('Комментарий')
def __str__(self):
return self.title
class Meta:
verbose_name = 'Комментарий'
verbose_name_plural = 'Комментарии'
forms.py:
from django.forms import ModelForm
from .models import Comment
class CommentForm(ModelForm):
class Meta:
model = Comment
fields = '__all__'
views.py:
from django.views.generic import ListView, DetailView
from django.shortcuts import render
from . import models, forms
class PostsView(ListView):
model = models.Post
template_name = "home.html"
class PostDetail(DetailView):
model = models.Post
template_name = "post_detail.html"
class CommentList(ListView):
model = models.Comment
template_name = "post_detail.html"
def newcomment(request):
form = forms.CommentForm()
return render(request, 'post_detail.html', {'form': form})
post_detail.html:
{% extends 'base.html' %}
{% block title %}
<title>{{ post.title }}</title>
{% endblock title %}
{% block content %}
<div>
<h2>{{ post.title }}</h2><i>{{ post.date }}</i>
<p>{{ post.body }}</p>
</div>
<br>
<div>
<h2>Comments:</h2>
{% if post.comments.all|length > 0 %}
{% for comment in post.comments.all %}
<h2>{{ comment.title }}</h2>
<h3>{{ comment.author }}</h3><i>{{ comment.date }}</i>
<p>{{ comment.comment }}</p>
{% endfor %}
{% else %}
<h3>Comments don't exist</h3>
{% endif %}
<br>
<h3>Добавить комментарий:</h3>
<form method="POST">
{% csrf_token %}
{{ form }}
<button type="submit">Добавить комментарий</button>
</form>
</div>
{% endblock content %}