Hallo habe ich ein benutzerdefiniertes Benutzermodell erstellt und neue Felder für die Registrierung eingeführt, sagen für ex: phone und erstellt benutzerdefinierten Adapter, um das Feld in der Datenbank zu speichern, aber zum Zeitpunkt der Validierung. clean_username() wird verwendet, um zu überprüfen, ob der Benutzername bereits existiert oder nicht. Ich muss die Telefonnummer für diesen Benutzernamen überprüfen. Überprüfen Sie also gleichzeitig Benutzernamen und Telefonnummer. Wie kann ich das Telefon nicht innerhalb clean_username Funktion bekommen. die unten ist die clean_username Funktion in django allauth AdapterDjango Allauth überschreiben clean_username und clean_email Funktion
def clean_username(self, username, shallow=False):
"""
Validates the username. You can hook into this if you want to
(dynamically) restrict what usernames can be chosen.
"""
if not USERNAME_REGEX.match(username):
raise forms.ValidationError(_("Usernames can only contain "
"letters, digits and @/./+/-/_."))
# TODO: Add regexp support to USERNAME_BLACKLIST
username_blacklist_lower = [ub.lower()
for ub in app_settings.USERNAME_BLACKLIST]
if username.lower() in username_blacklist_lower:
raise forms.ValidationError(_("Username can not be used. "
"Please use other username."))
# Skipping database lookups when shallow is True, needed for unique
# username generation.
if not shallow:
username_field = app_settings.USER_MODEL_USERNAME_FIELD
#appuuid_field = app_settings.USER_MODEL_APPID_FIELD
assert username_field
user_model = get_user_model()
try:
query = {username_field + '__iexact': username}
user_model.objects.get(**query)
except user_model.DoesNotExist:
return username
raise forms.ValidationError(
_("This username is already taken. Please choose another."))
return username
wie kann ich das Telefon Details aus dem Formular in clean_username Funktion es zu validieren auszukommen mit Benutzername – karthi