用django自带的auth框架,认证别的app里的models
时间:2008-08-22 来源:honglang13
django自带的auth框架,认证系统是与auth下的models相关的,如果要认证别的app里的models,应该怎么做呢?
经过查看源代码,大致知道怎么弄了,但为什么这样弄?还得继续读读它的源代码....
先就写上怎么弄吧,至于实现机制,以后看懂了再补上
1.在app中定义数据库模型,或者直接从auth中继承User模型,然后完善模型属性,注意仿照auth下models里的UserManager类,定义app中models里类似类的定义,当然这个不是必须的,这样做只是为了我们尽量可以像使用自带auth一样的使用。
2.在app中新建backends.py,定义类ModelBackend,以及实例方法authenticate和get_user,可以仿照auth中的backends.py
3.在settings.py中添加一句:
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend','xxx.xxx.backends.ModelBackend',)
这样在定义自己的views函数的时候,自带的auth和改动后的auth都可以使用了。
相关阅读 更多 +