Я создал собственную модель Memeber в django и теперь мне нужно подтвердить пароль в ней с помощью учетных данных для входа в систему
Это моя модель new_user, в которой я храню регистрационные данные пользователя, я могу сохранить данные в базу данных, используя эту модель, она работает правильно.
новая_модель_пользователя `
class new_user(models.Model):
stuname = models.CharField(max_length=200)
stubirthday = models.DateField()
stuphoto = models.ImageField()
stugemail = models.EmailField()
stugrade = models.IntegerField()
stuclass = models.CharField(max_length=1)
sturegdate = models.DateField(auto_now_add=True)
stuentrance = models.IntegerField()
sturesidance = models.TextField()
stuguardian = models.CharField(max_length=200)
stugtele = models.IntegerField()
stugemail = models.EmailField()
stumother = models.CharField(max_length=200)
stumothertele = models.IntegerField()
stuotherskills = models.CharField(max_length=200)
stucertificate = models.FileField()
stuletter = models.FileField()
stumedical = models.FileField()
stusports = models.CharField(max_length=200)
stupassword = models.CharField(max_length=200)
def __str__(self):
return self.stuname
`
Я унаследовал другую модель с именем Member от этой модели для хранения моих одобренных пользователей. Я использую эту модель для автоматического присвоения имени пользователя. Я унаследовал этот класс от модели new_users, потому что все мои значения, сохраненные в new_user, представлены здесь. Я не уверен в этом объявлении, может кто-нибудь подскажет мне, правилен ли мой подход
Модель члена `
class Member(new_user):
uid = models.AutoField(primary_key=True)
uname = models.CharField(default=f'{super.stuname[:2]}{uid}',unique=True)
password = super.stupassword
office_role = models.OneToOneField(Roles.rname)
mem_roles = [office_role ,'Member']
def __str__(self):
return self.uname
` Поскольку один член клуба может иметь одну роль офиса и роль члена клуба, я создал эту модель для хранения ролей членов клуба
Модель ролей
# model for user roles
class Roles(models.Model):
OPTIONS = ("Troop Leader", "Secretary", "Treasurer",
"President", "Vice President", "Admin")
rname = models.CharField(values=OPTIONS, max_length=20)
startdate = models.DateField(auto_now_add=True)
enddate = models.DateField(null=True, blank=True)
uid = models.OneToOneField(Member.uid)
def __str__(self):
return self.uid
Я начал кодировать свое представление
views.py
def action_login(request):
# CHECK REQUEST METHOD
if request.method == "POST":
# save user_name password in variables
uname = request.POST.get('username')
password = request.POST.get('password')
# check if user_name and password are correct
*I need to write a better code here to check with member uname and password combination*
Я не зашифровал пароль, но надеюсь сделать это после того, как все эти вещи будут работать. Я также надеюсь реализовать различные уровни авторизации на основе ролей пользователей.