我很难正确创建基于Bootstrap 4.3的按钮,并且该按钮可以激活帖子的更新。 我已创建此视图:
def updatePost(request, slug_post=None):
update_post = get_object_or_404(BlogPost, slug_post=slug_post)
form = BlogPostForm(request.POST or None, request.FILES or None, instance=update_post)
if form.is_valid():
update_post = form.save(commit=False)
update_post.slug_post = slugify(update_post.title)
update_post.save()
return redirect('post_list')
context = {
'form': form,
}
template = 'blog/editing/create_post.html'
return render(request, template, context)
和此路径:
path("blog/<str:slug_post>/update/", views.updatePost, name='update_post'),
但是当我使用此按钮时:
<a class="btn btn-primary btn-lg mt-2" href="{% url 'update_post' %}">Update</a>
我看到以下错误消息:
反向查找“ update_post”,未找到任何参数。 1个图案 尝试过的:['blog /(?P [^ /] +)/ update / $']
奇怪的是,如果我将更新链接写到addres栏中,则可以更新我的帖子。例如:我有此链接到帖子:/blog/title-slug-post/
。如果我输入/blog/title-slug-post/update/
,我可以更新帖子。
我怎么了?
答案 0 :(得分:0)
您需要在网址模板标记中包含slug_post
参数。现在,它不知道您想要什么子弹并引发错误。
{% url 'update_post' slug_post='title-slug-post' %}
如果您在上下文中传递BlogPost对象,也可以通过这种方式对其进行格式化。
{% url 'update_post' slug_post=blog_post.slug_post %}