概述
本节内容
自定义template tags
中间件
CRSF
权限管理
Django分页
https://docs.djangoproject.com/en/1.9/topics/pagination/
自定义template tags
https://docs.djangoproject.com/es/1.9/howto/custom-template-tags/
权限管理
django 自带有基本的权限管理 ,但粒度和限制权限的维度都只是针对具体的表,如果我们想根据业务功能来限制权限,那就得自己写了, 不过也不用完全自己的写,我们可以在django 自带的权限基础上轻松的实现扩展。
自己写权限要注意:
想对一个功能实现权限控制,要做到只能过在views方法上加一个装饰器就行了,比如:
required def customer_detail(request,customer_id): customer_obj = models.Customer.objects.get(id=customer_id) customer_form = forms.CustomerDetailForm(instance=customer_obj)if request.method == 'POST': customer_form = forms.CustomerDetailForm(request.POST,instance=customer_obj) if customer_form.is_valid(): customer_form.save() parent_base_url = '/'.join(request.path.split('/')[:-2]) print("url:",parent_base_url ) return redirect(parent_base_url) else: print(customer_form.errors) return render(request,'crm/customer_detail.html',{'customer_form':customer_form})
if request.method == 'POST':
customer_form = forms.CustomerDetailForm(request.POST,instance=customer_obj)
if customer_form.is_valid():
customer_form.save()
parent_base_url = '/'.join(request.path.split('/')[:-2])
print("url:",parent_base_url )
return redirect(parent_base_url)
else:
print(customer_form.errors)
return render(request,'crm/customer_detail.html',{'customer_form':customer_form})
if request.method == 'POST':
customer_form = forms.CustomerDetailForm(request.POST,instance=customer_obj)
if customer_form.is_valid():
customer_form.save()
parent_base_url = '/'.join(request.path.split('/')[:-2])
print("url:",parent_base_url )
return redirect(parent_base_url)
else:
print(customer_form.errors)
return render(request,'crm/customer_detail.html',{'customer_form':customer_form})
check_permission的代码实现
Middleware中间件
https://docs.djangoproject.com/es/1.9/topics/http/middleware/#process_request
如果您也喜欢它,动动您的小指点个赞吧