我有一個註冊表單,如果註冊表單填寫正確且有效,我想自動登錄該用戶。登錄視圖位於URLDjango - 如何將POST信息從一個視圖發送到另一個視圖
/login/
,這是該URL鏈接到(這是通用登錄視圖)登錄視圖:
def login(request, template_name='registration/login.html',
redirect_field_name=REDIRECT_FIELD_NAME,
authentication_form=AuthenticationForm,
current_app=None, extra_context=None):
if request.method == "POST":
form = authentication_form(data=request.POST)
if form.is_valid():
# Ensure the user-originating redirection url is safe.
if not is_safe_url(url=redirect_to, host=request.get_host()):
redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL)
# Okay, security check complete. Log the user in.
auth_login(request, form.get_user())
if request.session.test_cookie_worked():
request.session.delete_test_cookie()
return HttpResponseRedirect(redirect_to)
else:
form = authentication_form(request)
request.session.set_test_cookie()
current_site = get_current_site(request)
context = {
'form': form,
redirect_field_name: redirect_to,
'site': current_site,
'site_name': current_site.name,
}
if extra_context is not None:
context.update(extra_context)
return TemplateResponse(request, template_name, context,
current_app=current_app)
現在,它處理登記的觀點是:
def registrationView(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
user = User.objects.create_user(
username=form.clean_data['username'],
password=form.clean_data['password1'],
email=form.clean_data['email']
)
return HttpResponseRedirect('/login/')
現在,當我重定向到
/login/
在註冊視圖
,有可能是我送的用戶名和密碼爲「POST」的信息,這樣,當它到達登錄視圖
if request.method == "POST":
評估爲真?
爲什麼你想要做那件事? – geekazoid
@geekazoid因爲我想使用登錄視圖來登錄用戶。 – user2719875