最近完成这样的一个需求,比如说一个网页有几个按钮(添加,编辑,删除,查看),张三用户可以访问这几个按钮,李四只能查看(没有其它权限),怎么办?我相信对于初学者来说,完成这样的需求,确实有点难度,作者也是折腾了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里的表
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