request.user得到的是自訂model

來源:互聯網
上載者:User

#models.py 自訂的model

class MyUser(models.Model):
    username = models.CharField(max_length=32, verbose_name=u'使用者名稱')
    is_superuser = models.BooleanField(default=False, verbose_name=u'是否是超級使用者')
    is_active = models.BooleanField(default=False, verbose_name=u'啟用')
    password = models.CharField(max_length=128, verbose_name=u'密碼')
    created = models.DateTimeField(auto_now_add=True, verbose_name=u'建立時間')
    last_login= models.DateTimeField(auto_now=True, verbose_name=u'更新時間')
    
    def __unicode__(self):
        return self.username
    
    def is_authenticated(self):  
        return True  
 
    def hashed_password(self, password=None):  
        if not password:  
            return self.password  
        else:  
            return hashlib.md5(password).hexdigest()  
          
    def check_password(self, password):  
        if self.hashed_password(password) == self.password:  
            return True  
        return False  
    
    class Meta:
        verbose_name = _(u'管理員')
        verbose_name_plural = _(u'管理員')

#auth.py 定義一個後端器,用於說明後端驗證機制用到得是MyUser自訂model

class MyBackend:
 
    def authenticate(self, username=None, password=None):  
        try:  
            user = MyUser.objects.get(username=username)  
        except MyUser.DoesNotExist:  
            pass  
        else:  
            if user.check_password(password):  
                return user  
        return None  
   
    def get_user(self, user_id):  
        try:  
            return MyUser.objects.get(pk=user_id)  
        except MyUser.DoesNotExist:  
            return None  


#settings.py 配置後端器
AUTHENTICATION_BACKENDS = (
'myapp.auth.MyBackend',
)



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.