Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from django.shortcuts import render
2from django.http import HttpResponse, HttpResponseRedirect
3from django.contrib.auth import authenticate, login, logout
4from django.urls import reverse
5from django.db import IntegrityError
6from policorp.models import User
8# Create your views here.
9def index(request):
10 return render(request, "policon/index.html");
12def login_view(request):
13 if request.method == "POST":
15 # Attempt to sign user in
16 username = request.POST["username"]
17 password = request.POST["password"]
18 user = authenticate(request, username=username, password=password)
20 # Check if authentication successful
21 if user is not None:
22 login(request, user)
23 return HttpResponseRedirect(reverse("policon:index"))
24 else:
25 return render(request, "policon/login.html", {
26 "message": "Invalid username and/or password."
27 })
28 else:
29 return render(request, "policon/login.html")
31def logout_view(request):
32 logout(request)
33 return HttpResponseRedirect(reverse("policon:index"))
35def register(request):
36 if request.method == "POST":
37 username = request.POST["username"]
38 email = request.POST["email"]
40 # Ensure password matches confirmation
41 password = request.POST["password"]
42 confirmation = request.POST["confirmation"]
43 if password != confirmation:
44 return render(request, "policon/register.html", {
45 "message": "Passwords must match."
46 })
48 # Attempt to create new user
49 try:
50 user = User.objects.create_user(username, email, password)
51 user.save()
52 except IntegrityError:
53 return render(request, "policon/register.html", {
54 "message": "Username already taken."
55 })
56 login(request, user)
57 return HttpResponseRedirect(reverse("policon:index"))
58 else:
59 return render(request, "policon/register.html")