customizing request.user with a proxy model that extends Django User model

折月煮酒 提交于 2019-12-06 09:51:42

You can inherit a new middleware class from AuthMiddleware or create a separate middleware which will process request after django's auth and change request.user to your user instance.

Carlitux

I looked at code and my idea is here. Late but I think can be useful for others

In file 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

And on settings.py

    AUTHENTICATION_BACKENDS = (
        'myapp.backends.ModelBackend',
    )
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!