Как добавить возможность пользователю редактировать/удалять комментарии Django на этой же странице

models.py

class PostComments(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
content = models.TextField(max_length=300, blank=False)
created_on = models.DateTimeField(auto_now_add=True)

forms.py

class CommentCreateForm(forms.ModelForm):
class Meta:
    model = PostComments
    fields = ('content',)

    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user', None)
        super(CommentCreateForm, self).__init__(*args, **kwargs)

    def save(self, commit=True):
        obj = super(CommentCreateForm, self).save(commit=False)
        obj.user = self.user
        if commit:
            obj.save()
        return obj

views.py

def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
comments = post.postcomments_set.order_by('-created_on')
if request.method == 'POST':
    comment_form = CommentCreateForm(request.POST)
    if comment_form.is_valid():
        new_comm = comment_form.save(commit=False)
        new_comm.user = request.user
        new_comm.post = post
        new_comm.save()
else:
    comment_form = CommentCreateForm(request.POST)
context = {'post': post, 'comment_form': comment_form, 'comments': comments}
return render(request, 'blog/post_detail.html', context)

post_detail.html

   {% extends 'blog/base.html' %}
   {% block content %}
        <div class="container">
        <h1>{{post.title}}</h1>
        <p>{{post.content}}</p>
        <p>Categories: {{post.category}}</p>
        <p>Author: {{post.user.company.name}}</p>
        <p>Pub date: {{post.created_on}}</p>
        {% for img in post.postimages_set.all %}
        <img class="" src="{{ img.image.url }}">
        {% endfor %}
        <form class="form" method="POST" enctype='multipart/form-data'>
            {% csrf_token %}
            {{ comment_form.content }}
            <button type="submit" class="btn btn-primary">Create comment</button>
        </form>
        {% for comm in comments %}
            {% if comm.user == request.user %}
                <p>{{comm.content}}</p>
                <p>{{comm.user}}</p>
                <p>{{comm.created_on}}</p>
            {% else %}
            <p>{{comm.content}}</p>
            <p>{{comm.user}}</p>
            <p>{{comm.created_on}}</p>
            {% endif %}
        {% endfor %}
    </div>
    {% endblock content %}

Ответы (1 шт):

Автор решения: Jeniaκv

если еще актуально. Я делал это так.

urls.py

path('comment/int:id/',views.to_get_comment)

views.py

def to_get_comment(request, id):

selected_comment = get_object_or_404(Comment, id=id)
selected_comment.delete()
return redirect('post_detail')

В шаблоне cсылка удалить:

{% if user.is_authenticated %}
        {% for comment in comments %}
     <p>{{ comment.text }}</p>
    <small>добавлен:{{ comment.create_date }}</small><br>
    <small>пользователь:{{ comment.user }}</small><br>
    <small><a href="{% url 'delete_comment' comment.id  %}">удалить</a></small><br>
        {% endfor %}

 {% else %}
    <p>чтобы прочесть комментарии авторизуйся:</p>
    <p><a href="{% url 'avtorization_form'  %}"></a>авторизация</p>
{% endif %}
→ Ссылка