Comment connecter automatiquement un utilisateur après son inscription dans django

C’est ce que j’utilise actuellement pour l’inscription:

def register(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): new_user = form.save() messages.info(request, "Thanks for registering. Please login to continue.") return HttpResponseRedirect("/dashboard/") else: form = UserCreationForm() return render_to_response("accounts/register.html", { 'form': form, }, context_instance=RequestContext(request)) 

Est-il possible de ne pas obliger l’utilisateur à se connecter manuellement après la création d’un compte, mais simplement de les connecter automatiquement? Merci.

edit: J’avais essayé la fonction login () sans succès. Je crois que le problème est que AUTHENTICATION_BACKENDS n’a pas été défini.

En utilisant les fonctions authenticate() et login() :

 from django.consortingb.auth import authenticate, login def register(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): new_user = form.save() messages.info(request, "Thanks for registering. You are now logged in.") new_user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password1'], ) login(request, new_user) return HttpResponseRedirect("/dashboard/") 

pour les vues basées sur les classes, voici le code qui a fonctionné pour moi (django 1.7)

 from django.consortingb.auth import authenticate, login from django.consortingb.auth.forms import UserCreationForm from django.views.generic import FormView class SignUp(FormView): template_name = 'signup.html' form_class = UserCreateForm success_url='/account' def form_valid(self, form): #save the new user first form.save() #get the username and password username = self.request.POST['username'] password = self.request.POST['password1'] #authenticate user then login user = authenticate(username=username, password=password) login(self.request, user) return super(SignUp, self).form_valid(form)