表单验证重定向问题

Posted

技术标签:

【中文标题】表单验证重定向问题【英文标题】:form validation redirection problems 【发布时间】:2021-10-10 13:58:39 【问题描述】:

您好,我正在使用 django 在帖子上添加 cmets,我将信息直接保存在数据库中,这操作成功,但是在提交帖子后,它应该与评论重定向到同一页面上,但是表单继续重新提交请帮忙?

views.py

class PostDetailView(DetailView):
    def get(self, request, slug, *args, **kwargs):
        post = Post.objects.get(slug=slug)
        form = CommentForm()

        comments = Comment.objects.filter(post=post).order_by('-date_created')

        context = 
            'post':post,
            'form': form,
            'comments': comments
        
        return render(request, 'my_news/post_detail.html', context )
    
    def post(self, request, slug, *args, **kwargs):
        post = Post.objects.get(slug=slug)
        form = CommentForm(request.POST)

        if form.is_valid():
            new_post = form.save(commit=False)
            new_post.name = request.user
            new_post.post= post
            new_post.save()

        comments = Comment.objects.filter(post=post).order_by('-date_created')

        context = 
            'post':post,
            'form': form,
            'comments':comments
        
        return render(request, 'my_news/post_detail.html', context )

【问题讨论】:

【参考方案1】:

通过上下文发送的表单包含之前发布的评论的数据。如果要显示空表单,则必须使用空表单。

context = 
    'post': post,
    'form': CommentForm(),
    'comments': comments

希望我能正确理解您的问题

【讨论】:

是的,它工作正常,非常感谢! 如果有帮助,您可以接受我的回答 ;-)

以上是关于表单验证重定向问题的主要内容,如果未能解决你的问题,请参考以下文章

使用引导验证库防止表单提交后重定向

如何在 PHP 中验证表单,然后重定向到外部页面

数据当用户在验证失败(Python,Django)时被重定向回表单时如何保留表单?

HTML表单完成两个动作?验证然后通过一个提交按钮重定向

当引导验证成功时,如何使用 $.post 提交表单而不进行页面重定向?

Struts2 JQuery:Ajax 提交表单、服务器表单验证和成功重定向