如何注册和登录在django在同一时间与基于类的视图?



我有一个简单的注册视图,我想创建一个视图可以同时注册用户和登录他。我的代码不工作,我该怎么做才能做到呢?我的views.py:

class user_register(SuccessMessageMixin,CreateView,):
model = User
template_name = 'register.html'
success_url = reverse_lazy("company:home")
form_class = UserRegisterationForm 
success_message = "You registered successfully."
def form_valid(self,form):
user = authenticate(username=form.cleaned_data.get('username'),password=form.cleaned_data.get('password'))
if user is not None:
login(self.request,user)
return redirect('company:home')
return super().form_valid(form)

首先,您需要保存您的对象。

模型表单视图提供了一个form_valid()实现,可以自动保存模型或者简单地保存表单。

所以先叫form.save()

def form_valid(self,form):
user = form.save()
login(self.request, user, backend='django.contrib.auth.backends.ModelBackend')
return redirect('company:home')

最新更新