django自定义用户认证,django框架怎么使用
django的认证框架中还有其他几个功能:
权限
权限可以轻松识别用户和用户组可以执行的操作。Django的管理站点使用它们,您也可以在自己的代码中使用它们。
Django的管理站点拥有以下权限:
只有具有“添加”权限的用户才能使用“添加表单”来添加对象视图。
只有设置了更改权限的用户才能使用更改列表、更改表格和更改对象视图。
只有拥有删除权限的用户才能删除对象。
权限是根据每种类型的对象设置的,而不是特定于对象的特定实例。比如我们可以允许玛丽修改新故事,但是目前不允许设置玛丽只能修改自己创作的新故事,或者根据给定的状态、发表日期或者身份证号选择权限。
为每个Django模型自动创建三个基本权限:添加、更改和删除。运行manage.py syncdb命令时,这些权限会添加到auth_permission数据库表中。
权限显示为。_.
就像用户一样,权限是django模型中的django.contrib.auth.models。所以,如果你愿意,也可以通过Django的数据库API直接操作权限。
组
组为您提供了一种根据某些权限规则和其他标签对用户进行分类的通用方法。用户可以属于任意数量的组。
组中的用户自动获得授予该组的权限。例如,“网站编辑者”组拥有can_edit_home_page权限,该组中的任何用户都拥有该权限。
组也可以通过给一些用户特定的标签来扩展它们的功能。例如,您创建了一个“特殊用户”组,并允许该组中的用户访问网站的一些VIP部分,或发送VIP邮件。
与用户管理一样,管理界面是管理组的最简单方式。但是,组也是Django model Django . contrib . auth . models,所以可以使用Django的数据库API在底层访问这些组。
消息
系统将接收给定用户的消息。每条消息都与一个用户相关联。
每次成功操作后,Django的admin管理界面都会使用消息机制。例如,当您创建一个对象时,您会在管理页面的顶部看到一条消息,说明该对象已成功创建。
您还可以使用相同的API在自己的应用程序中排队接收和显示消息。API非常简单:
若要创建新消息,请使用user . message _ set . create(message= message _ text )。
要获取/删除消息,请使用user.get_and_delete_messages(),它将返回一个消息对象列表,并从队列中删除返回的项目。
在示例视图中,系统在创建播放列表后为用户保存消息。
defcreate_playlist(请求,歌曲):
# createtheplaylist withegivensongs。
# .
请求.用户.消息_设置.创建(
message=您的播放列表已成功添加
)
return render _ to _ response( playlists/create . html ,
context _ instance=RequestContext(request))使用request context时,当前登录的用户和他/她的消息将出现在带有模板变量{{ messages }}的模板的上下文中。
{%ifmessages%}
保险商实验所
{%formessageinmessages%}
li{{message}}/li
{%endfor%}
/ul
{%endif%}需要注意的是,RequestContext会在后台调用get_and_delete_messages,所以即使不显示也会被删除。
最后,这个消息框架只能服务于存在于用户数据库中的用户。如果你想给匿名用户发送消息,请直接使用对话框架。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。