django网页按钮权限管理

  

最近完成这样的一个需求,比如说一个网页有几个按钮(添加,编辑,删除,查看),张三用户可以访问这几个按钮,李四只能查看(没有其它权限),怎么办?我相信对于初学者来说,完成这样的需求,确实有点难度,作者也是折腾了2天,才懂的一点皮,毛在这里非常感谢我的同事雪姐,耐心的给我讲解。言归正传,把这个流程跟大家分享一下。(高手勿喷)


首先设计表结构

创建一个用户表,并且做了一对一关联django用户表

1。自定义用户表

<>之前得到__future__  import  unicode_literals      得到django.db  import 模型   得到django.contrib.auth.models  import 用户      #,Create  your  models 这里。   #自定义用户表   class 用户信息(models.Model):   ,,,user =, models.OneToOneField(用户),#关联django 用户表   ,,,username =, models.CharField (max_length=100)   ,,,password =, models.CharField (max_length=100)         ,,,def  __unicode__(自我):   ,,,,,,,return 自我。用户名


2。自定义权限表

 class  quanxian (models.Model):
  ,,,烁明=models.CharField (max_length=100)
  ,,,def  __unicode__(自我):
  ,,,,,,,return  self.shuoming
  ,,,class 元:
  ,,,,,,,permissions =, (
  ,,,,,,,,,,,(‘编辑’,,u的编辑权限”),
  ,,,,,,,,,,,(‘添加’,,u的添加权限”),
  ,,,,,,,,,,,(“▽”u“删除权限”),
  ,,,,,,,,,,,(“列表”u“查看权限”),
  ,,,,,,,)


3.的观点。py定义一个登录视图方法

<>之前得到test01.models  import 用户信息   得到django  import 形式   得到django.contrib  import 身份验证   得到django.contrib.auth.models  import 用户   得到django.contrib.auth  import 身份验证   得到django.template  import  RequestContext         #,Create  your  views 这里。   class  UserForm (forms.Form):   ,,,username =, forms.CharField(标签=坝没А?max_length=100)   ,,,password =, forms.CharField(标签=皃asswd”,小部件=forms.PasswordInput ())   def 指数(请求):         ,,,return  render_to_response (index . html)         def 登录(请求):   ,,,if  request.method ==,“POST”:   ,,,,,,,uf =, UserForm (request.POST)   ,,,,,,,if  uf.is_valid ():         ,,,,,,,,,,,username =, uf.cleaned_data(“用户”)   ,,,,,,,,,,,password =, uf.cleaned_data(“密码”)   ,,,,,,,,,,,print 用户名、密码,“* * * * * * *”      ,,,,,,,,,,      ,,,,,,,,,,,user1 =,验证(用户名=用户名,密码=密码)   ,,,,,,,,,,,is_add =, True  if  user1.has_perm (test01.add), else  False    ,,,,,,,,,,,print  user1——→, user1, user1.has_perm (“test01.add”), is_add   ,,,,,,,,,,,if  user1:   ,,,,,,,,,,,,,,,return  render_to_response (index . html,当地人(),,context_instance=RequestContext(请求)   ,,,,,,,,,,,其他的:   ,,,,,,,,,,,,,,,return  HttpResponseRedirect('/登录/')   ,,,:   ,,,,,,,uf =, UserForm ()   ,,,return  render_to_response (login.html,{‘超滤’:佛罗里达大学})

4。在admin.py注册模型。py里的表

<>之前得到django.contrib  import 管理   得到test01  import 模型   admin.site.register (models.quanxian)   admin.site.register (models.Userinfo)

5.的url。py

<>之前得到django.conf.urls  import  url   得到django.contrib  import 管理   得到test01  import 视图      urlpatterns =, (   ,,,url (r ^ admin/,, admin.site.urls),   ,,,url (r/$ ^指数,views.index),      ,,,url (r ^ $,, views.login,, name='登录'),   )

6。初始化数据表,创建后管理管台理员

创建后管理管台理员



7。登录管理后台,创建用户

http://127.0.0.1:8000/admin/



8。null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

django网页按钮权限管理