django-registrationのデフォルトビューに非常に簡単な変更を加える必要があります(ユーザーが認証されていない場合にのみ特定のビューが表示されるようにする必要があります)。たとえば、ログインしている場合、ユーザーが/registerページに再度アクセスできないようにします。
ですから、ここでの考え方は、register
django-registrationからのビューをサブクラス化することだと思います。これは、私がどのように進めるかわからないところです。これは正しい方向ですか?ここでユーザーの認証ステータスをテストする必要がありますか?ヒントとアドバイスを歓迎します!
編集
これはここで正しい道だと思います:Django:ログインしたユーザーをログインページからリダイレクトする
編集2
解決:
たとえば、別のアプリを作成し、custom_registration
次のようなビューを記述します(私の場合もカスタムフォームを使用します)。
from registration.views import register
from custom_registration.forms import EduRegistrationForm
def register_test(request, success_url=None,
form_class=EduRegistrationForm, profile_callback=None,
template_name='registration/registration_form.html',
extra_context=None):
if request.user.is_authenticated():
return HttpResponseRedirect('/')
else:
return register(request, success_url, form_class, profile_callback, template_name, extra_context)
同じ関数パラメーターを使用する必要がありましたが、それ以外の場合はテストを含めるだけで、合格した場合はメイン関数に進みます。
これをURLConfにも忘れずに入れてください(これも私のカスタムフォームに関するものも含まれています):
トップレベルのURLConf
(r'^accounts/', include('custom_registration.urls')),
(r'^accounts/', include('registration.urls')),
custom_registration.views
from django.conf.urls.defaults import *
from custom_registration.views import register_test
from custom_registration.forms import EduRegistrationForm
urlpatterns = patterns('',
url(r'^register/$', register_test, {'form_class': EduRegistrationForm}, name='registration.views.register'),
)