0

私はDjango-registrationを使用しており、登録時に一意の電子メールを強制したいので、次のものを持っています:

url(r'^register/$', 'registration.views.register',
{'form_class':RegistrationFormUniqueEmail,
    'backend':'registration.backends.default.DefaultBackend' }, name='registration_register'),

ただし、これは機能していません。たとえば、 /registration/forms.py に検証コードを入れて、いじりRegistrationFormUniqueEmailました

class RegistrationForm(forms.Form):

これは実際に一意性制約を実行します。また、実際に呼び出されていることを確認するためにimport ipdb; ipdb.set_trace()、別のメソッド コードにブレーク ポイントを配置しました。RegistrationFormUniqueEmailブレークポイントを配置した場所によっては、コンソールでコードが壊れたため、実行されていたように見えますが、検証は行われません。

ソース内の登録コードを変更する必要のない修正が必要です。つまり、固有の電子メール検証をメイン フォームに配置します。

何が起こっているのでしょうか?

4

1 に答える 1

0

私は最終的に、一意の電子メールバリデーターをフォークdjango-registrationして、パッケージのデフォルトの登録フォームに直接追加しましたforms.py。デフォルトフォームを他の場所でうまくサブクラス化できなかったため、パッケージレベルで行いました。パッケージに含める必要があり、pip依存関係を使用してHerokuにデプロイしているため、カスタマイズされたパッケージをプルする必要があります。

于 2013-06-21T16:09:19.470 に答える