Мой тип пользователя user и doctor не устанавливает true при регистрации пользователя
Я новичок в django, создаю проект для записи к врачу. Я расширил abstractuser и установил тип пользователя is_patient и is_doctor, формы регистрации пользователя и регистрации врача отличаются. Я хочу, чтобы при регистрации пользователя через форму is_user устанавливалось значение True, а при регистрации пользователя через форму is_doctor устанавливалось значение true. Но он не устанавливает true каждый раз при регистрации. Ниже приведен мой код.
models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import User
# Create your models here.
class User(AbstractUser):
is_user = models.BooleanField(default=False)
is_doctor = models.BooleanField( default=False)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
class User_reg(models.Model):
user = models.OneToOneField('User',on_delete=models.CASCADE, primary_key=True)
User.is_user = True
fname = models.CharField(max_length=50,blank=False)
lname = models.CharField(max_length=50,blank=False)
email = models.EmailField(max_length=100,blank=False)
address = models.TextField(max_length=500,blank=False)
gender = models.CharField(max_length=7, blank=False)
phone = models.CharField(max_length=12,unique=True,blank=False)
Username = models.CharField(max_length=100,blank=False,unique=True)
Userpassword = models.CharField(max_length=100,blank=False)
def __str__(self):
return self.fname
class dr_reg(models.Model):
user = models.OneToOneField('User',on_delete=models.CASCADE, primary_key=True)
user.is_doctor = True
fname = models.CharField(max_length=50,blank=False)
lname = models.CharField(max_length=50,blank=False)
image = models.ImageField()
specialisation = models.CharField(max_length=100,blank=False)
qualificaton = models.CharField(max_length=100,blank=False)
phone = models.CharField(max_length=12,blank=False,unique=True)
gender = models.CharField(max_length=7,blank=False)
address = models.TextField(max_length=500,blank=False)
state = models.CharField(max_length=50,blank=False)
city = models.CharField(max_length=50,blank=False)
zip = models.CharField(max_length=50,blank=False)
email = models.EmailField(max_length=50,blank=False)
dUsername = models.CharField(max_length=100,blank=False,unique=True)
dPassword = models.CharField(max_length=100,blank=False)
def __str__(self):
return self.fname
views.py
def register(request):
if request.method == "POST":
fname = request.POST.get('fname')
lname = request.POST.get('lname')
email = request.POST.get('email')
address = request.POST.get('add')
gender = request.POST.get('sex')
phone = request.POST.get('phone')
username = request.POST.get('uname')
userpassword = request.POST.get('upass')
myuser = User.objects.create_user(username, email, userpassword)
myuser.first_name = fname
myuser.last_name = lname
myuser.save()
User_reg.objects.create(fname=fname,lname=lname,email=email,address=address,gender=gender,phone=phone,Username=username,Userpassword=userpassword,user=myuser)
messages.success(request, 'Register successful')
return render(request,'user/login.html')
else:
return render(request, 'user/register.html')
def dr_register(request):
if request.method == "POST":
fname = request.POST.get('dfname')
lname = request.POST.get('dlname')
image = request.POST.get('img')
qualification = request.POST.get('qualification')
specialist = request.POST.get('specialisation')
phone = request.POST.get('dphone')
gender = request.POST.get('dsex')
address = request.POST.get('dadd')
state = request.POST.get('state')
city = request.POST.get('city')
zip = request.POST.get('zip')
email = request.POST.get('demail')
dr_username = request.POST.get('duname')
dr_password = request.POST.get('dpass')
mydoctor = User.objects.create_user(dr_username, email, dr_password)
mydoctor.first_name = fname
mydoctor.last_name = lname
mydoctor.save()
dr_reg.objects.create(fname=fname,lname=lname,image=image, qualificaton=qualification, specialisation = specialist, phone= phone, gender=gender, address=address, state=state, city=city, zip=zip, email=email, dUsername=dr_username, dPassword= dr_password,user=mydoctor)
# dr_register.save()
messages.success(request, 'Registeration successful')
return render(request, 'doctor/login.html')
else:
return render(request, 'doctor/register.html')
Я установил тип пользователя по умолчанию = False. пожалуйста, помогите мне, а также укажите, если есть предложение или изменение в коде, чтобы я не столкнулся с проблемами в последующих модулях.
Установка user.is_doctor=True
должна быть выполнена в вашем представлении.
mydoctor = User.objects.create_user(dr_username, email, dr_password)
mydoctor.first_name = fname
mydoctor.last_name = lname
mydoctor.is_doctor = True
mydoctor.save()
И аналогично
myuser = User.objects.create_user(username, email, userpassword)
myuser.first_name = fname
myuser.last_name = lname
myuser.is_user = True
myuser.save()