PostgreSQL で Django1.4 を使用しています。私は、学生と会社の 2 つのモデルを持つアプリケーションを開発しています。
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 は Student & Company モデルに存在してはなりません (タスクが完了しました)。
- 学生と企業のログイン用に 2 つのサインイン フォームを作成しました。
問題:
ユーザーモデルを使用または拡張していないため、django 組み込みのログインと認証方法を使用できません。
学生/会社のユーザー名とパスワードでユーザー資格情報をチェックするカスタム認証方法を作成するにはどうすればよいですか? (学生用と企業用の 2 つの異なるサインイン フォームがあります)
私を助けてください。
私の質問を読んでくれてありがとう。
backend.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
「学生」オブジェクトには属性「バックエンド」がありません