如何在 Django 中编辑和删除数据?

Posted

技术标签:

【中文标题】如何在 Django 中编辑和删除数据?【英文标题】:How do I edit and delete data in Django? 【发布时间】:2010-09-23 14:17:47 【问题描述】:

我正在使用 django 1.0,并且我使用 Django 书中的示例创建了我的模型。我能够执行添加数据的基本功能;现在我需要一种检索该数据的方法,将其加载到表单中(change_form?! 或其他东西),EDIT 并将其保存回数据库。其次,我如何DELETE 数据库中的数据?即搜索、选择然后删除!

请展示我需要在view.pyurls.py 上编写以执行此任务的代码示例。

【问题讨论】:

【参考方案1】:

要执行上述任何一项操作,您都需要使用查询。

查看下面的链接以获得关于此的非常棒的文档! (https://docs.djangoproject.com/en/2.2/topics/db/queries/)

删除数据:

b = ModelName.objects.get(id = 1)
b.delete()

这将删除 ID 为 1 的模型对象

编辑数据:

b = ModelName.objects.get(id = 1)
b.name = 'Henry'
b.save()

这会将 ID 为 1 的模型对象的名称更改为 Henry

【讨论】:

【参考方案2】:

假设您有一个模范员工。要使用主键 emp_id 编辑条目,请执行以下操作:

emp = Employee.objects.get(pk = emp_id)
emp.name = 'Somename'
emp.save()

删除它只是这样做:

emp.delete()

所以一个完整的视图应该是:

def update(request, id):
   emp = Employee.objects.get(pk = id)
   #you can do this for as many fields as you like
   #here I asume you had a form with input like <input type="text" name="name"/>
   #so it's basically like that for all form fields
   emp.name = request.POST.get('name')
   emp.save()
   return HttpResponse('updated')

def delete(request, id):
   emp = Employee.objects.get(pk = id)
   emp.delete()
   return HttpResponse('deleted')

在 urls.py 中你需要两个这样的条目:

(r'^delete/(\d+)/$','myproject.myapp.views.delete'),
(r'^update/(\d+)/$','myproject.myapp.views.update'),

我建议你看看docs

【讨论】:

对于那些在这一点上提出这个问题的人:与其直接访问request.POST.get,不如使用is_valid()。 See django's docs on validation... 内容广泛且设计精良。【参考方案3】:

阅读以下内容:The Django admin site。然后用具体细节修改你的问题。

【讨论】:

本主题与管理站点无关。他要求模型实例方法(删除)。 @israkir:内置的 Django 管理站点将允许用户删除模型实例和编辑数据。这就是它的作用。该主题说“将其加载到表单中(change_form?!或其他东西),对其进行编辑并将其保存回数据库。”这就是管理站点所做的。

以上是关于如何在 Django 中编辑和删除数据?的主要内容,如果未能解决你的问题,请参考以下文章

django的ORM操作 删除和编辑

python测试开发django-127.bootstrap-table 如何给单元格添加功能按钮(编辑/删除) 和事件(events)

如何在前端使用 django-tables2 编辑数据?

如何在 django 1.9 中删除 django-admin 中的保存并继续编辑按钮,使其不存在?

如何在Django中删除一个且只有一个应用程序的所有数据

使用mysql和django按日期时间删除数据库中的条目?