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

13 投票
3 回答
60392 浏览
提问于 2025-04-11 18:24

我正在使用django 1.0,并且已经按照Django书中的示例创建了我的模型。我可以进行基本的数据添加功能;现在我需要一种方法来获取这些数据,把它们加载到一个表单中(是change_form吗?还是别的什么),编辑它,然后再保存回数据库。其次,我该如何删除数据库中的数据呢?也就是说,搜索、选择然后删除!

请给我一个我需要在我的view.pyurls.py中编写的代码示例,以完成这个任务。

3 个回答

-9

请阅读以下内容:Django 管理网站。然后再把你的问题修改得更具体一些。

3

要完成这两件事情,你需要用到一种叫做查询的东西。

下面的链接有很棒的文档,可以帮助你了解这些内容!

(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。

35

假设你有一个叫做 Employee 的模型。如果你想修改一个主键为 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'),

我建议你去看看 文档

撰写回答