1from django.contrib.auth import authenticate, login
2
3def my_view(request):
4 username = request.POST['username']
5 password = request.POST['password']
6 user = authenticate(request, username=username, password=password)
7 if user is not None:
8 login(request, user)
9 # Redirect to a success page.
10 ...
11 else:
12 # Return an 'invalid login' error message.
13 ...
14
1from django.contrib.auth.decorators import login_required
2
3@login_required
4def my_view(request):
5 ...
1from django.contrib.auth.mixins import LoginRequiredMixin
2
3class MyView(LoginRequiredMixin, View):
4 login_url = '/login/'
5 redirect_field_name = 'redirect_to'
6
1def login_view(request):
2 if request.method == 'GET':
3 cache.set('next', request.GET.get('next', None))
4
5 if request.method == 'POST':
6 # do your checks here
7
8 login(request, user)
9
10 next_url = cache.get('next')
11 if next_url:
12 cache.delete('next')
13 return HttpResponseRedirect(next_url)
14
15 return render(request, 'account/login.html')