Как перенаправить разные типы страниц разным пользователям после входа в django
Я создал два разных типа пользователей - грузовик и компания, использующая Django. Вот моя страница регистрации пользователя Страница регистрации пользователя
После регистрации данные о том, является ли пользователь грузовиком или компанией, попадут в базу данных.
На моей странице входа в систему должны быть указаны только EmailID и пароль.
Я хотел бы знать, как пользователь с уникальным EmailID может перенаправить на действительную страницу в зависимости от типа пользователя.
2 ответа
Решение
Вам нужно что-то подобное;
def user_login(request):
if request.method == 'POST':
form = AuthenticationForm(data=request.POST)
if form.is_valid():
form.clean()
login(request, form.user_cache)
if form.user_cache.type == 'truck':
return HttpResponseRedirect('/some/where')
elif form.user_cache.type == 'company':
return HttpResponseRedirect('/some/where/else')
else:
form = AuthenticationForm()
return render(request, 'login.html', {'form' : form})
Ваша пользовательская модель пользователя выглядит примерно так:
class myuser(models.Model):
myUser = models.ForeignKey(User,..)
userType = models.CharField(choices=(('truck','truck'),('company','company'))
Ваше мнение должно быть примерно таким:
def login(request):
# authentication and getting the data from POST request to your login page,
# i assume you have a variable called user and you have your user object in it
userType = user.userType
if userType == company:
return HttpResponseRedirect('/some/url/')
if userType == truck:
return HttpResponseRedirect('/some/other/url/')