こんにちは、カスタムユーザーモデルを作成し、フィールドをデータベースに保存するために、検証時にex:phoneと作成されたカスタムアダプタを登録するための新しいフィールドを導入しました。 clean_username()は、既に存在するかどうかを確認するために使用されていますか、そのユーザー名の電話番号を確認する必要があります。ユーザー名と電話番号の両方を同時にチェックします。どのように私は電話をclean_username関数の中に入れることはできません。下のあなたがclean_ {フィールド名}関数にのみ、その特定のフィールドを検証することができallauthアダプタDjango allauth clean_usernameとclean_email関数をオーバーライド
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
:
あなたのきれいな機能は次のようになります – karthi