我将 Django1.4 与 PostgreSQL 一起使用。我正在开发一个应用程序,其中我有两个模型,即学生、公司。
class students(models.Model):
first_name = models.CharField(**option)
last_name = models.CharField(**option)
username = models.EmailField(max_length=100, unique=True)
password = models.CharField(_('password'), max_length=128)
# Some other attributes for Student models
class company(models.Model):
compnay_name = models.CharField(**option)
username = models.EmailField(max_length=100, unique=True)
password = models.CharField(_('password'), max_length=128)
#Some other attributes for company models
我的要求:
- 学生和公司可以创建新的个人资料(提供注册表单)
- 为学生/公司创建新的个人资料,用户名即电子邮件 ID 应该是唯一的。即学生和公司模型中不应存在电子邮件 ID。(任务已完成)
- 为学生和公司登录创建了 2 个登录表单。
问题:
由于我没有使用或扩展用户模型,我不能使用 django 内置的登录和身份验证方法。
如何编写自定义身份验证方法,该方法应检查学生/公司用户名和密码中的用户凭据。(学生和公司有两种不同的登录表格)
请帮我。
感谢您阅读我的查询。
后端.py
class LoginBackend:
def authenticate(self, username=None, password=None, model=None):
if model == "Student":
lookup_model = Student
elif model == "Employer":
lookup_model = Employer
try:
user = lookup_model.objects.get(email=username)
except Exception, e:
return None
return user
视图.py
def check_auth(request):
user_object = Student.objects.get(email__iexact = unicode(email))
if check_password(password, user_object.password):
print authenticate(username = email, password = password, model = "Student")
login(request, user_object)
设置.py
AUTHENTICATION_BACKENDS = ("proj.app.backends.LoginBackend",)
错误
/xxx/login/ 处的 AttributeError
“学生”对象没有属性“后端”