0
我有FormView從表單類UserCreateForm的註冊表單。它workf罰款,但現在我需要登錄的用戶註冊後自動,我有下面的代碼:如何在使用Django的FormView中註冊後自動登錄用戶?
class RegisterView(FormView):
form_class = UserCreateForm
template_name = 'contadores/register.html'
success_url = '/contadores/create/'
def dispatch(self, request, *args, **kwargs):
if request.user.is_authenticated():
return HttpResponseRedirect('/contadores/create')
else:
return super(RegisterView, self).dispatch(request, *args, **kwargs)
def form_valid(self,form):
user = form.save()
user = authenticate(username=request.POST['username'],password=request.POST['password'])
login(self.request,user)
return super(RegisterView,self).form_valid(form)
我與clean_data試圖代替request.POST但無論如何給出一個錯誤,我也試圖與登錄(自我。請求,form.user_cache)在form_valid函數,但我不能得到它。問題是:我如何得到這個?
它不工作,它說:「名字‘請求’沒有定義 」 – dfrojas
哦,那是因爲你要通過'request'到'form_valid()'。更新了答案。 – xyres
謝謝,但我想我必須將請求傳遞給Super(RegisterView,self).form_valid(form),因爲我用新的django(和python)來傳遞請求嗎?因爲django說缺少一個參數 – dfrojas