django 中的自定义注册重定向
Custom registration redirect in django
我已经做了一个注册表。当用户注册时,他们应该被重定向到不同的 url 以使用不同的视图。
我的view.py
def register(request):
if request.method=='POST':
user_form=UserRegistrationForm(request.POST)
if user_form.is_valid():
new_user=user_form.save(commit=False)
new_user.set_password(
user_form.cleaned_data['password'])
new_user.save()
company=Company.objects.create(user=new_user)
new_user = authenticate(username=user_form.cleaned_data['username'],
password=user_form.cleaned_data['password2'],
)
login(request, new_user)
return render(request,'account/register_done.html',{'new_user':new_user})
else:
user_form=UserRegistrationForm()
return render(request,'account/register.html',{'user_form':user_form})
urls.py
urlpatterns = [
#url(r'^login/$',views.user_login,name='login'),
url(r'^login/$','django.contrib.auth.views.login',name='login'),
url(r'^logout/$','django.contrib.auth.views.logout',name='logout'),
url(r'^logout_then_login/$','django.contrib.auth.views.logout_then_login',name='logout_then_login'),
url(r'^$',views.dashboard,name='dashboard'),
url(r'^register/$',views.register,name='register'),
url(r'^addcompany/$',views.companyadd,name='companyadd'),
url(r'^addcompanyreg/$',views.companyaddreg,name='companyaddreg'),
#url(r'^createinvoice/$',views.createinvoice,name='createinvoice'),
url(r'^createreceivable/$',views.createreceivables,name='createreceivable'),
]
当用户注册时,他们应该被重定向到
url(r'^addcompanyreg/$',views.companyaddreg,name='companyaddreg'),
请指导。
只需在处理 POST 请求后进行重定向,而不是重新呈现表单:
from django.core.urlresolvers import reverse
....
if user_form.is_valid():
....
return HttpResponseRedirect(reverse('companyaddreg'))
#return render(request,'account/register_done.html',{'new_user':new_user})
我已经做了一个注册表。当用户注册时,他们应该被重定向到不同的 url 以使用不同的视图。
我的view.py
def register(request):
if request.method=='POST':
user_form=UserRegistrationForm(request.POST)
if user_form.is_valid():
new_user=user_form.save(commit=False)
new_user.set_password(
user_form.cleaned_data['password'])
new_user.save()
company=Company.objects.create(user=new_user)
new_user = authenticate(username=user_form.cleaned_data['username'],
password=user_form.cleaned_data['password2'],
)
login(request, new_user)
return render(request,'account/register_done.html',{'new_user':new_user})
else:
user_form=UserRegistrationForm()
return render(request,'account/register.html',{'user_form':user_form})
urls.py
urlpatterns = [
#url(r'^login/$',views.user_login,name='login'),
url(r'^login/$','django.contrib.auth.views.login',name='login'),
url(r'^logout/$','django.contrib.auth.views.logout',name='logout'),
url(r'^logout_then_login/$','django.contrib.auth.views.logout_then_login',name='logout_then_login'),
url(r'^$',views.dashboard,name='dashboard'),
url(r'^register/$',views.register,name='register'),
url(r'^addcompany/$',views.companyadd,name='companyadd'),
url(r'^addcompanyreg/$',views.companyaddreg,name='companyaddreg'),
#url(r'^createinvoice/$',views.createinvoice,name='createinvoice'),
url(r'^createreceivable/$',views.createreceivables,name='createreceivable'),
]
当用户注册时,他们应该被重定向到
url(r'^addcompanyreg/$',views.companyaddreg,name='companyaddreg'),
请指导。
只需在处理 POST 请求后进行重定向,而不是重新呈现表单:
from django.core.urlresolvers import reverse
....
if user_form.is_valid():
....
return HttpResponseRedirect(reverse('companyaddreg'))
#return render(request,'account/register_done.html',{'new_user':new_user})