Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我能';是否保存Django ModelForm博客的编辑?_Django_Python 3.x_Modelform - Fatal编程技术网

为什么我能';是否保存Django ModelForm博客的编辑?

为什么我能';是否保存Django ModelForm博客的编辑?,django,python-3.x,modelform,Django,Python 3.x,Modelform,我当时正在学习Python速成课程Ex.19-1:Blogs,现在我正忙于保存任何博客的编辑。我尝试在blog.html中插入.errors代码(用于显示每个blog),但它没有显示任何内容,因此我猜我的模板没有字段错误(?) 以下是一些我认为对于解决不保存编辑问题至关重要的代码。views.py中新的_blog函数运行良好,因此我将跳过它 views.py中的edit_blog函数: def edit_blog(请求,blog_id): idk=BlogPost.objects.get(id

我当时正在学习Python速成课程Ex.19-1:Blogs,现在我正忙于保存任何博客的编辑。我尝试在blog.html中插入.errors代码(用于显示每个blog),但它没有显示任何内容,因此我猜我的模板没有字段错误(?)


以下是一些我认为对于解决不保存编辑问题至关重要的代码。views.py中新的_blog函数运行良好,因此我将跳过它

views.py中的edit_blog函数:

def edit_blog(请求,blog_id):
idk=BlogPost.objects.get(id=blog\u id)
if request.method!=“职务”:
form=BlogForm(实例=idk)
其他:
form=BlogForm(instance=idk,data=request.POST)
如果form.is_有效():
form.save()
返回HttpResponseRedirect(反向('blogs:blogs'))
content={“editing_blog”:form,“psst”:idk}
返回呈现(请求'blogs/edit_blog.html',内容)
new_blog.html:

{%extends“blogs/all.html”%}
{%block content%}
写一个新的博客:

{%csrf_令牌%} {{new_blog}}

提交 {%endblock内容%}
编辑_blog.html:

{%extends“blogs/all.html”%}
{%block content%}
编辑博客:

{%csrf_令牌%} {{编辑博客}

保存更改 {%endblock内容%}
顺便说一句,URL模式如下:

从django.url导入路径,包括
从…起导入视图
应用程序名称='博客'
URL模式=[
#主页
路径(“”,views.homepage,name='homepage'),
#显示所有博客。
路径('blogs/',views.blogs,name='blogs'),
#显示博客的详细信息。
路径('blogs/',views.blog,name='blog'),
#用于添加新博客的页面。
路径('new_blog/',views.new_blog,name='new_blog'),
#用于编辑博客的页面。
路径('edit_blog/',views.edit_blog,name='edit_blog'),
]

无论我如何更改标题、内容或两个博客,我都看不到保存的更改。是:

A) 如前所述,edit_blog.html中的我的表单操作出错

B) 我需要在编辑博客视图功能中调整一些东西,比如说


非常感谢。另外,请告诉我是否需要添加更多代码以便于理解。

您的表单操作当前设置为
{%url'blogs:blog'psst.id%}
,这意味着您正在发布到您的
视图。blog
视图,这只是一个详细视图。您需要将操作更改为
{%url'blogs:edit_blog'psst.id%}
,以便将表单发布到您的编辑视图

从您发布的代码中不清楚
editing_blog
上下文变量来自何处-您需要确保这是您的编辑视图正在查找的同一表单的实例,否则您将遇到其他问题


最后还要注意,您当前没有处理表单有错误的情况,即没有为
form指定
else
条件。是否有效()

是否调用编辑日志函数,写一条打印语句,看看表单提交是否真的提交到编辑博客功能。shell上的打印语句、views.py或template?请提供urlpattern,用于匹配
edit\u blog
view的路径?当然。请参阅代码部分。无需担心
编辑\u blog
变量。如果我在
edit_blog
模板和
content
dict of
edit_blog
查看功能中将其更改为其他名称,则它会工作。