您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python之路,Day16 - Django 进阶

5b51 2022/1/14 8:24:05 python 字数 3511 阅读 628 来源 www.jb51.cc/python

本节内容 自定义template tags 中间件 CRSF 权限管理 分页 Django分页 https://docs.djangoproject.com/en/1.9/topics/paginat

概述

本节内容

自定义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 

 


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶