Django 从url中动态获取参数
删除案例
在列表html文件中,删除的url后面添加传入的数字。
{% for obj in queryset %}
<tr>
<th>{{obj.id}}</th>
<td>{{obj.title}}</td>
<td>
<a class="btn btn-primary btn-xs" href="/depart/{{obj.id}}/edit/">编辑</a>
<a class="btn btn-danger btn-xs" href="/depart/delete/?nid={{obj.id}}">删除</a>
</td>
{% endfor %}
view文件中,GET获取传来的nid参数,在数据库中按照id筛选,然后删除对应的元素。
def depart_delete(request):
'''删除部门'''
nid = request.GET.get('nid') # 获取/depart/delete/?nid=1 中的数字
models.Department.objects.filter(id=nid).delete() # 在数据库中删除对应的元素
return redirect('/depart/list/') # 跳转回
编辑案例
urls文件中,这样设置url,代表中间nid为整数都可以转到该链接内容
点击列表编辑按钮,跳转的url按照下面这样设计。跳转到编辑页面的同时,会得到一个nid参数
利用此参数,可以用来传递到构造编辑页面的相关信息。
def depart_edit(request, nid):
''' 修改部门 '''
if request.method == 'GET':
row_object = models.Department.objects.filter(id=nid) # 在数据库中筛选
for i in row_object:
row_object = i
return render(request, 'depart_edit.html', {"row_object": row_object})
title = request.POST.get('title')
models.Department.objects.filter(id=nid).update(title=title)
return redirect("/depart/list/")
编辑页面中 数据提交 更新到数据库
编辑的html文件中
在view文件中进行下面操作