Как перенаправить разные типы страниц разным пользователям после входа в 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/')
Другие вопросы по тегам