django - 用于更新博客文章的按钮
问题描述
我很难正确创建基于 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/$']
奇怪的是,如果我将更新的链接写入地址栏中,我可以更新我的帖子。例如:我有一个帖子的链接:/blog/title-slug-post/
。如果我数字/blog/title-slug-post/update/
化,我可以更新帖子。
我做错了什么?
解决方案
您需要slug_post
在 url 模板标签中包含参数。现在它不知道你想要什么 slug 并引发错误。
{% url 'update_post' slug_post='title-slug-post' %}
如果您在上下文中传递 BlogPost 对象,您也可以通过这种方式对其进行格式化。
{% url 'update_post' slug_post=blog_post.slug_post %}
推荐阅读
- sql - SQL / Postgresql如何对列进行分组但根据某些条件找到另一列的平均值
- jupyter-notebook - Jupyter Notebook 对象没有属性
- oracle - OCI ObjectStorage 需要 CopyObject 的权限吗?
- php - 如何使网站对用户 PHP 不可用?
- vb.net - 无法在 Zebra 打印机上打印表格
- ansible - ansible diff忽略行的顺序
- git - 从本地分支,git push 到另一个远程分支
- javascript - 在文本框上绑定gridview onkeypress
- ios - UIStackView 无法满足的自动布局约束
- node.js - TypeError:无法读取未定义的属性“元素”