【发布时间】:2010-09-23 14:17:47
【问题描述】:
我正在使用 django 1.0,并且我使用 Django 书中的示例创建了我的模型。我能够执行添加数据的基本功能;现在我需要一种检索该数据的方法,将其加载到表单中(change_form?! 或其他东西),EDIT 并将其保存回数据库。其次,我如何DELETE 数据库中的数据?即搜索、选择然后删除!
请展示我需要在view.py 和urls.py 上编写以执行此任务的代码示例。
【问题讨论】:
我正在使用 django 1.0,并且我使用 Django 书中的示例创建了我的模型。我能够执行添加数据的基本功能;现在我需要一种检索该数据的方法,将其加载到表单中(change_form?! 或其他东西),EDIT 并将其保存回数据库。其次,我如何DELETE 数据库中的数据?即搜索、选择然后删除!
请展示我需要在view.py 和urls.py 上编写以执行此任务的代码示例。
【问题讨论】:
要执行上述任何一项操作,您都需要使用查询。
查看下面的链接以获得关于此的非常棒的文档! (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
【讨论】:
假设您有一个模范员工。要使用主键 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... 内容广泛且设计精良。
阅读以下内容:The Django admin site。然后用具体细节修改你的问题。
【讨论】: