Как сделать форму регистрации и входа доступной на каждой странице, чтобы я мог использовать модалы Django 1.8

#django #django-forms #django-views

#django #django-forms #django-просмотры

Вопрос:

Я реализовал обе формы входа и регистрации в моем приложении Django. В настоящее время они отображаются в signup.html и login.html страницы с соответствующими представлениями, как показано ниже

 def user_login(request):

    if request.method == 'POST':
        #do some authentication stuff login as stay on the page
        login_form = LoginForm(request.POST)

        if login_form.is_valid():
            cleaned_form_data = login_form.cleaned_data
            user = authenticate(username = cleaned_form_data['username'],
                                password = cleaned_form_data['password'])
            if user is not None:
                #proceed to login if active
                if user.is_active:
                    login(request,user)
                    #return HttpResponse('Successfully Logged In')
                    messages.success(request,'Login successfull')
                else:
                    return HttpResponse('Inactive User')

            else:
                return HttpResponse('Invalid Login')

    else:
        login_form = LoginForm()

    template = 'accounts/login.html'        
    context = {'form':login_form,}
    return render(request,template,context)

def register(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            new_user = form.save(commit = False)
            password = form.cleaned_data['password']
            new_user.set_password(password)             
            new_user.save()
            return render(request,'accounts/reg_success.html',{'new_user':new_user,})

    else:
        form = RegisterForm()
        template = 'accounts/register.html'
        context = {'form':form,}
        return render(request,template,context)
  

Как мне реализовать это, чтобы у меня были формы, отправляемые на каждую страницу, и я мог использовать модальности Javascript для входа и регистрации пользователей. Спасибо.

Ответ №1:

Я не эксперт, но я думаю, что есть 2 решения:

  1. Загрузите модальный контент с помощью AJAX, чтобы user_login
  2. Используйте a base.html , где оно содержит модальное содержимое, тогда каждая страница может расширять базовую страницу с помощью {% extends ‘base.html ‘ %}