Django - Ajax modal login/registration Django - Ajax modal login/registration ajax ajax

Django - Ajax modal login/registration


In addition to Maddog's answer you need some javascript to submit the form back to the URL that rendered the form. Using jquery it could be something like:

$('form').submit(function(e){        e.preventDefault();        var form = $(e.target);        $.ajax({            url: '{% url YOUR_REGISTRATION_URL %}',            type: 'post',            data: account_form.serialize() + '&' + form.serialize(),            error: function(xhr, ajaxOptions, thrownError){ alert(thrownError); },            success: function(){}        }) })

You don't need to do it with a form submit element, you could use any element with $().click(), of course.


Something like this?

def ajax_registration(request):    login_form, registration_form = False, False    if request.method == "POST":        if "email" in request.POST: # some condition to distinguish between login and registration form            login_form = AuthenticationForm(request.POST)            if login_form.is_valid():                # log in        else:            registration_form = RegistrationForm(request.POST)            if registration_form.is_valid():                # register    obj = {        'login_form': login_form if login_form else AuthenticationForm(),        'registration_form': registration_form if registration_form else RegistrationForm(),    }    return render(request, 'common/ajax_registration.html', obj)