【本节目标】完成编辑工具功能的保存新字段
上节课我们知道了,input输入框内的名字是和变量form_data中的name同步的,也就是说当用户更改了输入框内容,点击保存后。
我们保存功能直接把form_data发送给后台接口即可。
然后再由后台保存到数据库中。
首先给保存按钮增加点击事件:
然后,在下面写上这个函数:
这个函数的步骤就是,把当前form_data的数据发送给后台。
有的同学这会就问了,说后台接收到form_data中的name字段确实可以。
但是应该不知道要给哪个工具更新这个name啊?
其实这点不用担心,因为此时form_data中已经有了一个隐藏字段id了。
这个id就是工具的id,后台靠这个id就知道要把name更新给哪个工具。
那么这个id从哪来的呢?其实是我们前面的edit_tool()函数,当它给form_data赋值的时候,就把工具id也一起赋值过去了。只不过我们一开始初始化的时候没有手动给form_data加上id,不过这也无所谓,因为id并不需要更改也不需要显示到dom层。
现在我们要给这个save_tool写一个axios接口了:
发送了这个post请求,那么我们现在来考虑,前端接收到后台成功返回消息后,要做些什么事?
其实要做的事除了关掉这个dialog之外就是更新当前的tool_list变量,只有这样,前端展示的工具列表才会肉眼可见的发生变化和更新。
通过res.data返回体的方式更新只是前端的一箱所愿。最终还是要靠后台接口的返回值配合才行。
所以我们现在去urls.py中写好对照关系:
然后去后台实现这个功能:
这个函数中,我们通过请求体的方式一步到位拿到form_data。
然后再利用orm技术中,使用id来筛选,再把筛选结果进行更新。
然后再返回。
而这个返回,就必须返回最新的工具列表数据才行。恰好,我们前面写了此函数,即get_tools,所以这里调用即可。返回它的返回值,俗称借花献佛。
测试:
成功把名字修改了
欢迎关注【测试开发干货】