Не могу заставить форму работать для ответов на комментарии

Я не могу заставить форму сообщения работать для ответов на сообщение (комментарии к сообщению). Она работает через админку Django, но я не могу отобразить форму в шаблоне, что, как я думаю, связано с моим бесполезным бэкендом.

Планировка "сайта": Front: Первая страница содержит все посты и показывает 3 последних комментария к этим постам (эта часть работает).

Посты: Когда вы хотите прочитать пост, он перенаправляет вас на другую страницу, которая показывает выбранный пост (как обычно) и здесь вы можете увидеть все комментарии к посту (в настоящее время добавленные непосредственно через Django Admin). Здесь мне нужна форма, чтобы посетитель мог ответить на сообщение. (Эта часть не работает).

Формы:

from django import forms
from django.forms import widgets, TextInput, ModelForm
from .models import Comments, Post

class PostForm(ModelForm):

    class Meta:
        model = Post
        fields = ['entry', 'post_image']
        labels = {
            'entry': "Post something spoopy:",
        
        }
        widgets = {
            'entry': widgets.Textarea(attrs={'rows':10, 'cols':5})
        }
        
    def __init__(self, *args, **kwargs):
        super(PostForm, self). __init__(*args, **kwargs)

        for name, field in self.fields.items():
            field.widget.attrs.update({'class': 'input'})

class CommentForm(ModelForm):
    class Meta:
        model = Comments
        fields = ['comment_entry', 'comment_image']
        labels = {
            'comment_entry': "Answer!",
        
        }

    def __init__(self, *args, **kwargs):
        super(CommentForm, self).__init__(*args, **kwargs)

        for name, field in self.fields.items():
            field.widget.attrs.update({'class': 'input'})

Модели:

from django.db import models
import uuid

from django.db.models.fields import AutoField

# Create your models here.

class Post(models.Model):
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
    entry = models.TextField(max_length=2000)
    created = models.DateTimeField(auto_now_add=True)
    post_image = models.ImageField(null=True, blank=True, default="default.jpg")
    ip_adress = models.GenericIPAddressField(protocol='both', unpack_ipv4=False, default='192.168.1.1')

    def __str__(self):
        return self.entry

    @property
    def imageURL(self):
        try:
            url = self.post_image.url
        except:
            url = ''
        return url

class Comments(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='post_comments')
    comment_entry = models.CharField(max_length=2000, blank=True, null=True)
    comment_image = models.ImageField(null=True, blank=True, default="default.jpg")
    created_on = models.DateTimeField(auto_now_add=True)


    class Meta:
        ordering = ['created_on']

    def __str__(self):
        return self.comment_entry

    @property
    def imageURL(self):
        try:
            url = self.comment_image.url
        except:
            url = ''
        return url

Просмотров:

from django.shortcuts import get_object_or_404, render, redirect
from .models import Post, Comments
from django.utils import timezone
from .forms import PostForm, CommentForm

# Create your views here.
def discussion(request, pk):
    post = Post.objects.get(id=pk)
    
    return render(request, 'discussions/discussion.html', {'post': post, 'replies': Comments.objects.filter(post_id=post)})

def discussions(request):
    posts = Post.objects.filter(created__lte=timezone.now()).order_by('-created')

    if request.method == 'POST':
        form = PostForm(request.POST, request.FILES)
    
        if form.is_valid():
            post = form.save(commit=False)
            post.created = timezone.now()
            post.save()
            return redirect('discussions')

    else:
        form = PostForm()   
     

    return render(request, 'discussions/discussions.html', {'posts': posts, 'form': form})

def comments(request):
    
    form = CommentForm()

    if request.method == 'POST':
    
        post = CommentForm(request.POST, request.FILES)
        if post.is_valid():
            post = form.save(commit=False)
            form.save()

            return redirect('discussion')

    context = {'form': form}
    return render(request, "discussions/discussion.html", context)

Шаблон

{% extends 'main.html' %}

{% block content %}
<div class="container">
<h1>{{ post }}</h1>
<img class="_thumbnail" src="{{post.imageURL}}" alt="project thumbnail" />
<ul>
   {% for reply in post.post_comments.all %}
      <li>{{ reply.comment_entry }}</li>
   {% endfor %}
</ul>
<form method="POST" class="post-form" enctype="multipart/form-data">
   {% csrf_token %}
   {{ form.as_p }}
   <button type="submit" class="save btn btn-default">Post</button>
</form>
</div>
{% endblock content %}
Вернуться на верх