Hide keyboard shortcuts

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 

7 

8# Create your views here. 

9def index(request): 

10 return render(request, "policon/index.html"); 

11 

12def login_view(request): 

13 if request.method == "POST": 

14 

15 # Attempt to sign user in 

16 username = request.POST["username"] 

17 password = request.POST["password"] 

18 user = authenticate(request, username=username, password=password) 

19 

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") 

30 

31def logout_view(request): 

32 logout(request) 

33 return HttpResponseRedirect(reverse("policon:index")) 

34 

35def register(request): 

36 if request.method == "POST": 

37 username = request.POST["username"] 

38 email = request.POST["email"] 

39 

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 }) 

47 

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")