Coverage for pages/views.py: 100.00%

25 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-13 16:37 -0700

1from django.core.mail import BadHeaderError, send_mail 

2from django.http import HttpResponse 

3from django.shortcuts import redirect, render 

4from django.views.generic import TemplateView 

5 

6from .forms import ContactForm 

7 

8 

9class HomePageView(TemplateView): 

10 template_name = "pages/home.html" 

11 

12 

13class AboutPageView(TemplateView): 

14 template_name = "pages/about.html" 

15 

16 

17def ContactView(request): 

18 if request.method == "GET": 1adcb

19 form = ContactForm() 

20 else: 

21 form = ContactForm(request.POST) 1dcb

22 if form.is_valid(): 1dcb

23 subject = form.cleaned_data["subject"] 1cb

24 from_email = form.cleaned_data["from_email"] 1cb

25 message = form.cleaned_data["message"] 1cb

26 try: 1cb

27 send_mail(subject, message, from_email, ["admin@example.com"]) 1cb

28 except BadHeaderError: 1b

29 return HttpResponse("Invalid header found.") 1b

30 return redirect("success") 1c

31 return render(request, "pages/contact.html", {"form": form}) 1ad

32 

33 

34def SuccessView(request): 

35 return render(request, "pages/success.html")