私は 3 番目の部分のアプリ (django-registration) を使用しており、自分の都合で検証ルールを変更する必要があります。
1 つの方法は、フォーム (RegistrationForm) を拡張し、独自の検証ルールでフィールドをオーバーライドすることです。
#registration/forms.py
class RegistrationForm(forms.Form):
username = forms.RegexField(regex=r'^[\w.@+-]+$',
max_length=30,
...
)
...
自分のアプリでは:
class RegistrationForm(RegistrationForm):
username = forms.RegexField(regex=r'(?ui)^[\w.@+-]+$',
min_length=3,
max_length=20,
...
)
...
しかし、この拡張された形式を自分のコードに入れるかどうかは常に問題です。
もう 1 つのアイデアは、登録アプリを自分のプロジェクト フォルダーに埋め込み、それを直接変更することです。簡単にできますが、OOP に関する問題のように感じます。
それを行うための最良の方法は何だろうか?