Django - Добавление комментариев к сообщению без перенаправления

Благословения,

Когда я пытаюсь добавить комментарий к сообщению, он перенаправляет меня на соответствующую HTML-страницу, которая, в свою очередь, позволяет мне комментировать.

Что я пытаюсь достичь здесь, это возможность комментировать на странице сообщения без необходимости перенаправления...

views.py

# Post page
class MovieDetail(DetailView):
    model = Movie

    def render_to_response(self, *args, **kwargs):
        self.object.refresh_from_db()
        self.object.views_count += 1
        self.object.save()
        return super().render_to_response(*args, **kwargs)

    def get_context_data(self, **kwargs):
        context = super(MovieDetail, self).get_context_data(**kwargs)
        context['links'] = MovieLink.objects.filter(movie=self.get_object())
        context['related_movies'] = Movie.objects.filter(category=self.get_object().category)
        return context


@login_required(login_url='/accounts/login/')
def comment_create(request, slug):
    movie = Movie.objects.get(slug=slug)
    if request.method == 'POST':
        form = forms.CommentForm(request.POST, request.FILES)
        if form.is_valid:
            comment = form.save(commit=False)
            comment.post = movie
            comment.author = request.user
            form.save()
            return redirect('movies:movie_detail', slug=slug)
    else:
        form = forms.CommentForm()
    return render(request, 'movie/add_comment.html', {'form': form})

forms.py

class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ('name', 'body')

models.py

class Comment(models.Model):
    post = models.ForeignKey(Movie, on_delete=models.CASCADE, related_name='comments')
    name = models.ForeignKey(User, default=None, on_delete=models.CASCADE)
    body = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['created_on']

    def __str__(self):
        return 'Comment {} by {}'.format(self.body, self.name)

movie_detail.html

                   <div id="respond">
    
                        {% if not movie.comments.all %}
    
                            <p style="color: white">No Comments Added yet...</p>
    
                        {% else %}
                            {% for comment in movie.comments.all %}
                        <section class="reply" style="padding: 10px; color: white;">
                                <h3><strong>{{ comment.name }}</strong></h3>
                                <p>{{ comment.body | linebreaks }}</p>
                                <p><small>{{ comment.created_on }}</small></p>
                        </section>
                            {% endfor %}
                        {% endif %}
    
                        <br>
                        <hr>
    
                        <form method="post" style="margin-top: 1.3em;">
                            {{ form.as_p }}
                            {% csrf_token %}
    
                    <textarea name="comment" id="comment" rows="10" tabindex="4"  required="required"></textarea>
                  <a href="{% url 'movies:add_comment' movie.slug %}" class="myButton">Submit</a>

Буду очень признателен за помощь! :)

Это происходит потому, что вы создали еще одно представление для комментария. Вы должны использовать только одно представление как для запроса get (детали фильма), так и для запроса post (для создания комментария). Если вы не знаете, как это сделать, вот ссылка: https://dontrepeatyourself.org/post/django-blog-tutorial-part-4-posts-and-comments/

Вернуться на верх