大家好,更新一个帖子后,我如何重定向成功消息到完整的详细信息页面临时。因为对于我现在的代码,在我更新之后,我可以看到更新后的消息,但即使在刷新之后,更新后的成功消息仍保留在那里。敬请指教,谢谢!
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 %}
消息总是会被呈现,因为您将它作为视图中模板上下文的属性传递,Django messages框架可以帮助您实现这一点。如果您想要消息自动删除,可以使用Ajax来实现。