自定义的视图我需要做一个非常简单的修改 - 要求某些观点仅显示当用户没有通过验证 - 到Django的注册默认视图。例如,如果我登录,我不希望用户能够再次访问/注册页面。Django的注册
所以,我觉得这里的想法是,我想从子类Django的注册register
视图。这正是我不知道如何着手的地方。这是正确的方向吗?我应该在这里测试用户的身份验证状态吗?提示和建议欢迎!
编辑
我认为这是这里的正轨: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'),
)
我按照上面的编辑完成了大部分工作,但我会把它给你。看看这个链接,你可以看到他是如何围绕另一个函数包装一个函数的,如果你通过了这个测试,你就可以慢慢地转向真正的函数。我必须在我的测试函数中使用与'register'中相同的参数,但否则它会很好。除此之外,不需要复制它们的代码。查看我的第二个编辑代码。 –
是的,当然,您也可以在视图中调用原始视图并返回其响应。其实我一直都这样做。尽管我没有在这里提到,但保持简单。 –
随着最新和最伟大的,这个答案现在已经过时了!视图可以现在分类。 请参阅[django文档](https://docs.djangoproject.com/en/1.5/topics/class-based-views/intro/)和[django注册文档](https://django-registration.readthedocs .org/en/latest/views.html) –