¿Cómo validar / limpiar () un campo único = verdadero sin usar un ModelForm?

En un formulario personalizado, ¿cómo se valida la singularidad de un campo de un modelo (es decir, tieneunique=True conjunto)?

Sé que ModelForm de django realiza automáticamente unavalidate_unique() Función que se llama dentro de la BaseModelForm'sclean() Método: por lo tanto, cuando se usa ModelForm, esto se manejará correctamente (como en el Administrador).

Sin embargo, estoy creando mi propia forma desde cero y me pregunto cómo puedo manejar esto yo mismo. Creo que mi mayor obstáculo es saber qué objeto se adjunta al formulario cuando se limpian los datos ...

Algún código:

class UserProfile(CreatedModifiedModel):
    user            = models.ForeignKey(User, unique=True)
    display_name    = models.CharField('Display Name',max_length=30,
                        blank=True,unique=True)

class EditUserProfileForm(forms.Form):
    display_name    = forms.CharField(required=False,max_length=30)

    # "notifications" are created from a different model, not the UserProfile
    notifications    = forms.MultipleChoiceField(
                        label="Email Notifications",
                        required=False,
                        widget=forms.CheckboxSelectMultiple,)

    def clean_display_name(self):
        # how do I run my own validate_unique() on this form?
        # how do I know which UserProfile object I am working with?

    # more code follows, including the __init__ which sets up the notifications

Respuestas a la pregunta(2)

Su respuesta a la pregunta