Cleaner

Den Zwang zur aufwendigen Lokalisierung eines ModelForm-Formulars gibt es natürlich nur, wenn man nicht den noch aufwendigeren Weg eines manuell definierten Formulars und einer passenden clean-Methode wählt:

def clean_matrikel(self): try: user = UserProfile.objects.get(matrikel=self.cleaned_data['matrikel']) except UserProfile.DoesNotExist: return self.cleaned_data['matrikel'] raise forms.ValidationError(_('Diese Matrikelnummer wurde bereits registriert.'))

Der harmlos wirkende Unterstrich vor der Fehlermeldung ist ein Synonym für ugettext_lazy und stellt sicher, dass man sich trotz des Umwegs den Freuden der Lokalisierung hingeben kann.