以前は、古いバージョンのdjango-registrationを使用していましたが、現在は廃止されているようです。私のサーバーではPythonプラグインをインストールできないため、「登録」を個別のdjangoアプリケーションとして使用する必要があります。今私の質問は、登録をdjango-appとして実行するために何を変更する必要があるかということです。'registration'をdjangoプロジェクトカタログにコピーして設定に追加するだけで機能しますか?以前は「backend」が定義されていませんでしたが、現在は「path」を引数として取る関数get_backendを持つバックエンドinitファイルです。このパスはURL経由で送信されていると思いますよね?
url(r'^activate/(?P<activation_key>\w+)/$',
activate,
{'backend': 'registration.backends.default.DefaultBackend'},
name='registration_activate'),
このカタログ内には、DefaultBackendクラスを含むinitファイルもあり、クラスはアクティブ化されて登録されます。
http://paste.pocoo.org/show/225790/
どちらも信号を使用します。何らかの方法でこれらの信号を気にする必要がありますか?(私はまだそれらが使用されているものを完全には理解していません)。最後のもの。以前は、登録後、success_urlを指定するか、次のようにテンプレートを設定してリダイレクトしていました。
return HttpResponseRedirect(success_url or reverse('registration_complete'))
これを担当するコードは次のようになります。
if success_url is None:
to, args, kwargs = backend.post_registration_redirect(request, new_user)
return redirect(to, *args, **kwargs)
else:
return redirect(success_url)
およびpost_registration_redirect:
def post_registration_redirect(self, request, user):
"""
Return the name of the URL to redirect to after successful
user registration.
"""
return ('registration_complete', (), {})
それでも単に'registration_complete'にリダイレクトするのに、なぜこれがこのように変更されたのでしょうか。argsとkwargsは空なので、なぜわざわざするのですか?