2010-05-04 129 views
2

我在settings.py插入这样的:电子邮件身份验证

AUTHENTICATION_BACKENDS = (
    'blog.auth.backends.EmailBackend', 
    'django.contrib.auth.backends.ModelBackend', 
) 

博客是一个应用程序(正确安装),权威性是博客应用程序的文件夹,backends.py是文件包含此方法:

from django.contrib.auth.backends import ModelBackend 
from django.core.validators import email_re 
from django.contrib.auth.models import User 


class EmailBackend(ModelBackend): 

    def authenticate(self, username=None, password=None): 
     if email_re.search(username): 
      try: 
       user = User.objects.get(email=username) 
       if user.check_password(password): 
        return user 
      except User.DoesNotExist: 
       return None 
     return None 

我的问题是:

为什么我得到这个错误? :

ImproperlyConfigured at /signup/ 
Error importing authentication backend auth.backends: "No module named auth.backends" 
+0

而__init__.py在Blog文件夹中吗? – 2010-05-04 17:57:54

回答

3

你应该确保在所有使用的文件夹的__init__.py(博客,AUTH)!

5

此外,您可能需要清除会话从django_session;'中的删除。我在升级django版本时遇到了这个问题。

+0

我甚至没有意识到可以缓存django auth后端模块字符串!花费超过1小时进行调试!然后简单的会话清理修复了它。谢谢。 – carefulweb 2013-03-07 15:21:51