我需要对 django-registration 默认视图进行非常简单的修改——要求某些视图仅在用户未通过身份验证时显示。例如,如果我已登录,我不希望用户能够再次访问 /register 页面。
所以,我认为这里的想法是我想register
从 django-registration 中继承视图。这只是我不确定如何进行的地方。这是正确的方向吗?我应该在这里测试用户的身份验证状态吗?欢迎提示和建议!
编辑
我认为这是正确的做法:Django: Redirect logged in users from login page
编辑 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'),
)