提问者:小点点

Django:在更新了一篇文章之后,我怎样才能使更新的成功消息暂时生效,直到我刷新页面为止。因为现在它会在刷新后停留


大家好,更新一个帖子后,我如何重定向成功消息到完整的详细信息页面临时。因为对于我现在的代码,在我更新之后,我可以看到更新后的消息,但即使在刷新之后,更新后的成功消息仍保留在那里。敬请指教,谢谢!

views.py

def edit_blog_view(request, slug):

    context = {}
    blog_post = get_object_or_404(BlogPost, slug=slug)
    if request.POST:
        form = UpdateBlogPostForm(request.POST or None, request.FILES or None, instance=blog_post)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.save()
            return redirect('HomeFeed:detail', slug=slug)

    form = UpdateBlogPostForm(
            initial = {
                    "brief_description": blog_post.brief_description,
                    "image": blog_post.image,
                    "body": blog_post.body,

            }
        )

    context['form'] = form
    return render(request, 'HomeFeed/edit_blog.html', context)

def detail_blog_view(request, slug):

    context = {}
    blog_post = get_object_or_404(BlogPost, slug=slug)
    context['success_message'] = "Updated"
    context['blog_post'] = blog_post
    return render(request, 'HomeFeed/detail_blog.html', context)

detail_blog.html

{% if success_message %}
<div class="alert alert-success" role="alert"><h3 style="text-align: center;">{{success_message}}</h3></div>
{% endif %}



共1个答案

匿名用户

消息总是会被呈现,因为您将它作为视图中模板上下文的属性传递,Django messages框架可以帮助您实现这一点。如果您想要消息自动删除,可以使用Ajax来实现。