tam*_*are 2 django django-templates django-models
class MyUser(User):
class Meta:
proxy = True
def do_something:
...
Run Code Online (Sandbox Code Playgroud)
有了上述内容,我使用代理模型技术扩展了Django用户模型的行为.我希望我可以以某种方式自定义request.user,以便每次都为其分配MyUser实例而不是User实例.如果可能的话,我怎么能实现呢?
小智 9
我查看了代码,我的想法就在这里.迟到但我认为对其他人有用
在文件myapp/backends.py中
from django.contrib.auth import backends
from models import ProxyUser
class ModelBackend(backends.ModelBackend):
'''
Extending to provide a proxy for user
'''
def get_user(self, user_id):
try:
user = ProxyUser.objects.get(pk=user_id)
except ProxyUser.DoesNotExist:
return None
return user if self.user_can_authenticate(user) else None
Run Code Online (Sandbox Code Playgroud)
在settings.py上
AUTHENTICATION_BACKENDS = (
'myapp.backends.ModelBackend',
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |