2

シンガポールの誰かが私のウェブサイトにサインアップできないと報告しました。ウェブサイトはDjangoプロジェクトであり、django-registrationモジュールを使用しています。エラーメッセージには、パスワードフィールドについて次のように記載されています。

this value may contain only letters, numbers and etc

ユーザーは、パスワードにラテンアルファベットのみを使用していると言いますが、彼は中国語キーボードを持っており、システム(Windows)は漢字入力用に構成されています。開発環境で問題を再現する方法がわかりません。

誰かがこの問題を引き起こす可能性があることを知っていますか?django-registrationは非ASCII文字で機能することを意図していますか?ユーザーはラテン文字のみを使用していると言っているので、おそらく問題は彼のパスワードがUnicodeとしてエンコードされていることですが、それについてはよくわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

2

問題はパスワードではなく、ユーザー名にあると思います。機能UserCreationFormUserChangeForm ここを参照してください

username = forms.RegexField(
        label=_("Username"), max_length=30, regex=r"^[\w.@+-]+$",
        help_text = _("Required. 30 characters or fewer. Letters, digits and "
                      "@/./+/-/_ only."),
        error_messages = {
            'invalid': _("This value may contain only letters, numbers and "
                         "@/./+/-/_ characters.")})

この正規表現を満たさないラテン文字を使用している可能性があります。

この正規表現に一致しない場合、このエラーが発生する可能性があります。

于 2012-08-15T13:41:31.550 に答える