2014-04-25 16 views
5

Chcę wykonać dodatkową weryfikację pól w django-allauth. Na przykład chcę uniemożliwić korzystanie z bezpłatnych adresów e-mail. Tak więc chcę uruchomić tę metodę podczas rejestracjiNiestandardowa weryfikacja formularza w Django-Allauth

Podobnie chcę uruchomić niestandardową weryfikację na różnych polach innych niż adres e-mail. Jak mogę to zrobić?

Odpowiedz

4

Istnieje kilka adapterów w konfiguracji allauth. Na przykład ten:

ACCOUNT_ADAPTER (="allauth.account.adapter.DefaultAccountAdapter") 
    Specifies the adapter class to use, allowing you to alter certain default behaviour. 

Możesz określić nowy adapter, zastępując domyślny. Wystarczy zastąpić metodę clean_email.

class MyCoolAdapter(DefaultAccountAdapter): 

    def clean_email(self, email): 
     """ 
     Validates an email value. You can hook into this if you want to 
     (dynamically) restrict what email addresses can be chosen. 
     """ 
     *** here goes your code *** 
     return email 

Następnie zmodyfikować ACCOUNT_ADAPTER na settings.py

ACCOUNT_ADAPTER = '**app**.MyCoolAdapter' 

Sprawdź domyślne zachowanie na: https://github.com/pennersr/django-allauth/blob/master/allauth/account/adapter.py

+0

Aby odrzucić adres e-mail, podnieść 'wyjątek django.forms.ValidationError' . – Flimm

+0

jak to zrobić w innym polu formularza? – Hakim