第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列

作者 : IT 大叔 本文共1256个字,预计阅读时间需要4分钟 发布时间: 2020-09-21

Django Web 初级起飞教程系列:

第1章:Django Web应用程序设置-Django 3…2…1…起飞!系列

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列

第3章:主页-Django 3 ... 2 ... 1 ... Takeoff!系列

第4章:列表页面-Django 3 ... 2 ... 1 ... Takeoff系列

第5章:新列表页-Django 3 ... 2 ... 1 ...起飞!系列

第6章:导航栏 - Django 3 ... 2 ... 1 ...起飞!系列

第7章:详细清单页面-Django 3 ... 2 ... 1 ... 起飞!系列

第8章:我的列表页面-Django 3 ... 2 ... 1 ... 起飞系列

第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列

您可以创建新列表,查看列表的详细信息,但不能编辑或删除列表。让我们关注本章中的编辑部分。

编辑列表网址

打开urls.py并添加以下代码。

第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列插图

与详细视图类似,我们需要在URL中包括列表的ID,以便我们可以编辑正确的列表。

编辑列表视图

由于我们正在处理更改表单,因此编辑列表视图将与详细信息视图不同。打开views.py并添加以下代码。

第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列插图(2)

新列表视图和编辑视图之间的主要区别在于,我们不是在创建而是在编辑现有列表。

清单= Listings.objects.get(id = detail_id)

首先,我们要获取要编辑的特定列表。完成此操作后,该过程与新的列表视图非常相似。有关表格如何工作的说明,请参见第5章。

形式= ListingForm(instance = listing)

如果该请求不是POST请求,我们将生成一个表格,但是这次字段将已经用该特定清单的现有信息填充。这是通过设置instance = listing来实现的,该实例将从数据库中获取特定实例。

形式= ListingForm(request.POST,request.FILES,instance = listing)

我们要在数据库中编辑一个存在模型实例,我们使用instance = listing,以便在再次提交表单时覆盖数据库中的该特定实例。

编辑清单模板

在模板文件夹中创建一个名为edit_listing.html的模板。打开此模板并添加以下代码。

第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列插图(4)

表单action =“%url'listings:edit_listing'listing.id%” method ='post'enctype =“ multipart / form-data”

由于我们现在位于不同的模板中,因此操作方法发生了变化,并且还包括了listing.id,在提交表单时需要使用它来编辑正确的列表。

重新访问我的列表模板

打开my_listings.html并激活编辑按钮。

第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列插图(6)

class =“ btn” href =“%url'listings:edit_listing'my_listing.id%”“>编辑/

我们通过将路径添加到编辑页面来激活编辑按钮,并传递了我们要编辑的特定列表的ID。

运行服务器,转到我的列表页面,然后编辑一些列表以测试表单。提交表格后,清单应反映所做的更改。

第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列插图(8)

第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列插图(10)

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论