This is what im building I am currently developing a receipt system and when i run the application, i get this error, i have checked the settings.py and my app has been added to the list of installed apps, my templates are also in place and the problem is still existent,please assist if there is somewhere else i need to check , Below is the error i get when i try run the application This is the error Environment: Request Method: GET Request URL: http://127.0.0.1:8000/ Django Version: 5.2.1 Python Version: 3.12.3 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'receiptsiclife'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Template loader postmortem Django tried loading these templates, in this order: Using engine django: * django.template.loaders.filesystem.Loader: /home/aessumen/receiptsystemsiclife/receiptsystemsiclife/templates/base.html (Source does not exist) * django.template.loaders.app_directories.Loader: /home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/contrib/admin/templates/base.html (Source does not exist) * django.template.loaders.app_directories.Loader: /home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/contrib/auth/templates/base.html (Source does not exist) * django.template.loaders.app_directories.Loader: /home/aessumen/receiptsystemsiclife/receiptsystemsiclife/receiptsiclife/templates/base.html (Source does not exist) Template error: In template /home/aessumen/receiptsystemsiclife/receiptsystemsiclife/receiptsiclife/templates/receiptsiclife/home.html, error at line 1 base.html 1 : {% extends 'base.html' %} 2 : 3 : {% block title %}Dashboard - ReceiptSicLife{% endblock %} 4 : 5 : {% block content %} 6 : <div class="row"> 7 : <div class="col-md-12"> 8 : <h1>Dashboard</h1> 9 : <div class="row mt-4"> 10 : <div class="col-md-4"> 11 : <div class="card bg-primary text-white"> Traceback (most recent call last): File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render return self.template.render(context) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render return self._render(context) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render return self.nodelist.render(context) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/base.py", line 1016, in render return SafeString("".join([node.render_annotated(context) for node in self])) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated return self.render(context) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 134, in render compiled_parent = self.get_parent(context) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 131, in get_parent return self.find_template(parent, context) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 109, in find_template template, origin = context.template.engine.find_template( File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/engine.py", line 163, in find_template raise TemplateDoesNotExist(name, tried=tried) The above exception (base.html) was the direct cause of the following exception: File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/aessumen/receiptsystemsiclife/receiptsystemsiclife/receiptsiclife/views.py", line 21, in home return render(request, 'receiptsiclife/home.html', context) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render content = loader.render_to_string(template_name, context, request, using=using) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string return template.render(context, request) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/backends/django.py", line 109, in render reraise(exc, self.backend) File "/home/aessumen/receiptsystemsiclife/venv/lib/python3.12/site-packages/django/template/backends/django.py", line 130, in reraise raise new from exc Exception Type: TemplateDoesNotExist at / Exception Value: base.html " MODELS.PY from django.db import models from django.db import models from django.core.mail import EmailMessage from django.conf import settings from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import inch from reportlab.lib import colors from io import BytesIO import os from datetime import datetime class Student(models.Model): PROGRAM_CHOICES = [ ('computer_science', 'Computer Science'), ('business_admin', 'Business Administration'), ('engineering', 'Engineering'), ('medicine', 'Medicine'), ('law', 'Law'), ('education', 'Education'), ] student_name = models.CharField(max_length=200) dob = models.DateField(verbose_name="Date of Birth") program = models.CharField(max_length=50, choices=PROGRAM_CHOICES) email = models.EmailField() parents_name = models.CharField(max_length=200) parents_contact = models.CharField(max_length=20) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return f"{self.student_name} - {self.program}" class Meta: verbose_name = "Student" verbose_name_plural = "Students" class Payment(models.Model): PAYMENT_STATUS_CHOICES = [ ('pending', 'Pending'), ('completed', 'Completed'), ('failed', 'Failed'), ('refunded', 'Refunded'), ] PAYMENT_METHOD_CHOICES = [ ('cash', 'Cash'), ('card', 'Credit/Debit Card'), ('bank_transfer', 'Bank Transfer'), ('mobile_money', 'Mobile Money'), ] student = models.ForeignKey(Student, on_delete=models.CASCADE, related_name='payments') amount = models.DecimalField(max_digits=10, decimal_places=2) payment_date = models.DateTimeField(auto_now_add=True) payment_method = models.CharField(max_length=20, choices=PAYMENT_METHOD_CHOICES) status = models.CharField(max_length=20, choices=PAYMENT_STATUS_CHOICES, default='pending') description = models.TextField(blank=True, null=True) receipt_number = models.CharField(max_length=50, unique=True, blank=True) def save(self, *args, **kwargs): if not self.receipt_number: # Generate unique receipt number self.receipt_number = f"REC-{datetime.now().strftime('%Y%m%d')}-{self.id or '000'}" # If payment status changes to completed, generate and send receipt if self.status == 'completed' and self.pk: old_status = Payment.objects.get(pk=self.pk).status if self.pk else None if old_status != 'completed': super().save(*args, **kwargs) self.generate_and_send_receipt() return super().save(*args, **kwargs) def generate_pdf_receipt(self): """Generate PDF receipt""" buffer = BytesIO() doc = SimpleDocTemplate(buffer, pagesize=letter, rightMargin=72, leftMargin=72, topMargin=72, bottomMargin=18) # Container for PDF elements elements = [] styles = getSampleStyleSheet() # Custom styles title_style = ParagraphStyle( 'CustomTitle', parent=styles['Heading1'], fontSize=24, spaceAfter=30, alignment=1, # Center alignment textColor=colors.HexColor('#2E86AB') ) header_style = ParagraphStyle( 'CustomHeader', parent=styles['Heading2'], fontSize=16, spaceAfter=12, textColor=colors.HexColor('#A23B72')" " URLS.PY from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), path('students/', views.student_list, name='student_list'), path('students/add/', views.student_create, name='student_create'), path('students/<intk>/', views.student_detail, name='student_detail'), path('payments/', views.payment_list, name='payment_list'), path('payments/add/', views.payment_create, name='payment_create'), path('payments/<intk>/', views.payment_detail, name='payment_detail'), path('payments/<intk>/receipt/', views.download_receipt, name='download_receipt'), ] " " VIEW.PY from django.shortcuts import render from django.shortcuts import render, redirect, get_object_or_404 from django.contrib import messages from django.http import HttpResponse, JsonResponse from django.views.generic import ListView from .models import Student, Payment from .forms import StudentForm, PaymentForm def home(request): """Home page view""" recent_payments = Payment.objects.filter(status='completed')[:5] total_students = Student.objects.count() total_payments = Payment.objects.filter(status='completed').count() context = { 'recent_payments': recent_payments, 'total_students': total_students, 'total_payments': total_payments, } return render(request, 'receiptsiclife/home.html', context) def student_create(request): """Create new student""" if request.method == 'POST': form = StudentForm(request.POST) if form.is_valid(): student = form.save() messages.success(request, f'Student {student.student_name} created successfully!') return redirect('student_list') else: form = StudentForm() return render(request, 'receiptsiclife/student_form.html', {'form': form, 'title': 'Add New Student'}) def student_list(request): """List all students""" students = Student.objects.all().order_by('-created_at') return render(request, 'receiptsiclife/student_list.html', {'students': students}) def student_detail(request, pk): """Student detail view""" student = get_object_or_404(Student, pk=pk) payments = student.payments.all().order_by('-payment_date') return render(request, 'receiptsiclife/student_detail.html', { 'student': student, 'payments': payments }) def payment_create(request): """Create new payment""" if request.method == 'POST': form = PaymentForm(request.POST) if form.is_valid(): payment = form.save(commit=False) payment.status = 'completed' # Auto-complete payment payment.save() messages.success(request, f'Payment of ${payment.amount} recorded successfully!') return redirect('payment_list') else: form = PaymentForm() return render(request, 'receiptsiclife/payment_form.html', {'form': form, 'title': 'Record New Payment'}) " " SETTINGS.PY # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'django-insecure-j^%lil+8pmkkqmzd549p$@a96ro-#u(w&qi+vf-vt@ifm^v+2n' # SECURITY WARNING: don't run with debug turned on in production! #2ND CHANGES MADE DEBUG = config('DEBUG', default=True, cast=bool) #Changes made #DEBUG = True ALLOWED_HOSTS = ['localhost', '127.0.0.1'] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'receiptsiclife', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'receiptsystemsiclife.urls' " " URLS.PY from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('', include('receiptsiclife.urls')), ] " " " BASE.HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{% block title %}ReceiptSicLife{% endblock %}</title> <!-- Bootstrap CSS --> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom CSS --> {% load static %} <link rel="stylesheet" href="{% static 'css/style.css' %}"> {% block extra_css %}{% endblock %} </head> <body> <!-- Navigation Bar --> <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <div class="container"> <a class="navbar-brand" href="{% url 'home' %}">ReceiptSicLife</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav me-auto"> <li class="nav-item"> <a class="nav-link" href="{% url 'home' %}">Dashboard</a> </li> <!-- Add more navigation items as needed --> </ul> <ul class="navbar-nav"> {% if user.is_authenticated %} <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown"> {{ user.username }} </a> <ul class="dropdown-menu"> " "URLS.PY This is my URLS.py if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)" Continue reading...