Мой login.view не работает и говорит, что не вернул объект ответа http
У меня возникла проблема с созданием формы входа для 2 различных типов пользователей. После того, как я реализовал этот код, мой рендерер не работает.
def Login_View(request):
context = {}
user = request.user
if request.method == 'POST':
form = AuthencationForm(request.POST)
if form.is_valid():
email = request.POST['email']
password = request.POST['password']
user = authenticate(request,email=email, password=password)
if user is not None:
if user.is_active:
login(request, user)
type_user = user.user_type
if user.is_authenticated and type_user == "1":
return redirect('requests' % request.user.FKLab_User.id)
elif user.is_authenticated and type_user == "2":
return redirect('distributor-view' % request.user.FKDistrib_User.id)
return messages.info(request,"Your account is disabled.")
return messages.info(request,"Username and password are incorrect.")
else:
form = AuthencationForm()
return render(request, 'accounts/login.html', {'form': form})
Это представление входа в систему пришло из модели пользователя, а именно:
class CustomUser(AbstractBaseUser, PermissionsMixin):
USER_TYPE_CHOICES =( (1, 'LAB_USER'), (2, 'DISTRIB_USER') )
FKLab_User = models.ForeignKey('HospitalViewRoleForUsers', on_delete=models.PROTECT, null=True, blank= True)
FKDistrib_User = models.ForeignKey('distrib_api.Distributor', on_delete=models.SET_NULL, null=True, blank= True)
user_type = models.PositiveSmallIntegerField(choices=USER_TYPE_CHOICES, default=0, null=True, blank=True)
email = models.EmailField(_('email address'), unique=True)
name = models.CharField(max_length=255, blank=True, null=True)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
date_joined = models.DateTimeField(default=timezone.now)
telephone = models.CharField(max_length=15, blank=True, null=False)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = CustomUserManager()
class Meta:
db_table = 'customuser'
indexes = [
models.Index(fields=['name'], name='first_name_idx'),
]
def __str__(self):
return self.email
Я хочу сделать webapp, где есть разные пользователи > пользователь лаборатории и пользователь дистрибьютора. Пользователь Distributor имеет администратора, который может создавать и удалять пользователей, то же самое происходит и с пользователем lab admin. и кто из них имеет определенный вид. Я не знаю, что не так, поскольку я получаю эту ошибку:
Ошибка значения в /auth/login/
Представление api.views.Login_View не вернуло объект HttpResponse. Вместо этого оно вернуло None.
Также в информации о моем запросе говорится, что мой пользователь является анонимным пользователем, даже после входа в систему. Можете ли вы объяснить мне, что пошло не так?