Django 1.9 comprueba si el correo electrónico ya existe

Mi sitio está configurado para que no haya nombre de usuario (o más bien user.username = user.email). Django tiene un mensaje de error si un usuario intenta ingresar un nombre de usuario que ya está en la base de datos, sin embargo, dado que no estoy usando un nombre de usuario para el registro, no puedo entender cómo hacerlo.

Tal como la configuración predeterminada ya lo es, no quiero volver a cargar la página para averiguar si ya hay una dirección de correo electrónico asociada con un usuario. Mi conjetura es usar Ajax, pero no puedo entender cómo hacerlo. He mirado otras publicaciones, pero no parece haber nada reciente.

¿Cómo puedo verificar si ya existe una dirección de correo electrónico y, si es así, dar un mensaje de error para que el usuario ingrese una nueva dirección de correo electrónico?

modelos.py:

class MyUsers(models.Model):
    user = models.OneToOneField(User)
    first_name = models.CharField(max_length=100, blank=True)
    last_name = models.CharField(max_length=100, blank=True)
    email = models.EmailField(max_length=100, blank=True, unique=True)
    company = models.CharField(max_length=100, blank=True, null=True)
    website = models.URLField(max_length=100, blank=True, null=True)
    phone_number = models.CharField(max_length=100, blank=True, null=True)

    def __str__(self):
        return self.user.username

formas.py:

class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('email',)


class UserProfileForm(forms.ModelForm):
    class Meta:
        model = UserProfile
        fields = ('first_name', 'last_name', 'company', 'website', 'phone_number')

views.py:

def index(request):
    registered = False

    if request.method == 'POST':
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            user.set_password(user.password)
            user.password = ""
            user.username = user.email
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user
            profile.email = user.email
            profile.save()

            user.first_name = profile.first_name
            user.last_name = profile.last_name
            user.save()

            registered = True
            return HttpResponseRedirect(reverse('registration'))
        else:
            print user_form.errors, profile_form.errors
    else:
        user_form = UserForm()
        profile_form = UserProfileForm1()

    context = {'user_form': user_form, 'profile_form': profile_form, 'registered': registered}
    return render(request, 'mysite/register.html', context)

register.html:

{% extends 'mysite/base.html' %}
{% load staticfiles %}

{% block title_block %}
    Register
{% endblock %}

{% block head_block %}
{% endblock %}

{% block body_block %}    
    <form id="user_form" method="post" action="/mysite/" enctype="multipart/form-data">
        {% csrf_token %}
        {{ user_form.as_p }}
        {{ profile_form.as_p }}

        <input type="submit" name="submit" value="Register" />
    </form>
{% endblock %}

Respuestas a la pregunta(1)

Su respuesta a la pregunta