Why the pages can't get show in my Django CRUD application?

64 views
Skip to first unread message

Saeed Pooladzadeh

unread,
Mar 10, 2019, 11:34:06 AM3/10/19
to Django users

I try to learn Django CRUD from this tutorial: https://www.javatpoint.com/django-crud-example My Django version is 2.1.7 and my IDE is VisualStudio. When I run the project all the pages have an error. the error cames bellow.

 TemplateDoesNotExist at /index
show.html
Request Method: GET
Request URL:    http://localhost:52322/index
Django Version: 2.1.7
Exception Type: TemplateDoesNotExist
Exception Value:    
show.html
Exception Location: E:\Django_Try\DjangoWebProject5\DjangoWebProject5\env\lib\site-packages\django\template\loader.py in get_template, line 19
Python Executable:  E:\Django_Try\DjangoWebProject5\DjangoWebProject5\env\Scripts\python.exe
Python Version: 3.6.6
Python Path:    
['E:\\Django_Try\\DjangoWebProject5\\DjangoWebProject5',
 '',
 'E:\\Django_Try\\DjangoWebProject5\\DjangoWebProject5',
 'E:\\Django_Try\\DjangoWebProject5\\DjangoWebProject5\\env\\Scripts\\python36.zip',
 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\DLLs',
 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\lib',
 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64',
 'E:\\Django_Try\\DjangoWebProject5\\DjangoWebProject5\\env',
 'E:\\Django_Try\\DjangoWebProject5\\DjangoWebProject5\\env\\lib\\site-packages']
Server time:    Tue, 5 Mar 2019 22:43:24 +0000

I add my Urls bellow:

from django.conf.urls import include, url
from django.contrib import admin  
from django.urls import path  
from employee import views  

urlpatterns = [  
    path('index', views.show), 
    path('admin/', admin.site.urls),  
    path('emp', views.emp),  
    path('show',views.show),  
    path('edit/<int:id>', views.edit), 
    path('update/<int:id>', views.update),  
    path('delete/<int:id>', views.destroy),  
]

View:

from django.shortcuts import render, redirect  
from employee.forms import EmployeeForm  
from employee.models import Employee  
# Create your views here.  
def emp(request):  
    if request.method == "POST":  
        form = EmployeeForm(request.POST)  
        if form.is_valid():  
            try:  
                form.save()  
                return redirect('/show')  
            except:  
                pass  
    else:  
        form = EmployeeForm()  
    return render(request,'index.html',{'form':form})  
def show(request):  
    employees = Employee.objects.all()  
    return render(request,"show.html",{'employees':employees})  
def edit(request, id):  
    employee = Employee.objects.get(id=id)  
    return render(request,'edit.html', {'employee':employee})  
def update(request, id):  
    employee = Employee.objects.get(id=id)  
    form = EmployeeForm(request.POST, instance = employee)  
    if form.is_valid():  
        form.save()  
        return redirect("/show")  
    return render(request, 'edit.html', {'employee': employee})  
def destroy(request, id):  
    employee = Employee.objects.get(id=id)  
    employee.delete()  
    return redirect("/show") 

setting:

"""
Django settings for DjangoWebProject5 project.

Generated by 'django-admin startproject' using Django 1.9.1.

For more information on this file, see
https://docs.djangoproject.com/en/1.9/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.9/ref/settings/
"""

import os
import posixpath

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '65ccf984-10e5-4c13-ab4d-9c0cf30e8b04'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = [
    # Add your apps here to enable them
    'employee',  
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

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.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'DjangoWebProject5.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'DjangoWebProject5.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}


# Password validation
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/1.9/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/

STATIC_URL = '/static/'

STATIC_ROOT = posixpath.join(*(BASE_DIR.split(os.path.sep) + ['static']))

the project structure is completely like the tutorial an image cames bellow:

My structure screenshot:

https://drive.google.com/open?id=1xRB0xcnkplZ4ktiyEblkMVeyJ1SpATDc

I think the error says the template does not exist but the templates exist. Please inform me what is wrong in my application.

thanks

Saeed

Kevin Jay

unread,
Mar 10, 2019, 1:03:59 PM3/10/19
to django...@googlegroups.com
You have to create the template called 'show.html'

TemplateDoesNotExist at /index
show.html

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/05df68ff-8e74-40ec-b573-eadd68f66bcd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Kevin Jay

unread,
Mar 10, 2019, 3:51:38 PM3/10/19
to django...@googlegroups.com
Here is the relevant template from the link that you provided.
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>Employee Records</title>  
  6.      {% load staticfiles %}  
  7.     <link rel="stylesheet" href="{% static 'css/style.css' %}"/>  
  8. </head>  
  9. <body>  
  10. <table class="table table-striped table-bordered table-sm">  
  11.     <thead class="thead-dark">  
  12.     <tr>  
  13.         <th>Employee ID</th>  
  14.         <th>Employee Name</th>  
  15.         <th>Employee Email</th>  
  16.         <th>Employee Contact</th>  
  17.         <th>Actions</th>  
  18.     </tr>  
  19.     </thead>  
  20.     <tbody>  
  21. {% for employee in employees %}  
  22.     <tr>  
  23.         <td>{{ employee.eid }}</td>  
  24.         <td>{{ employee.ename }}</td>  
  25.         <td>{{ employee.eemail }}</td>  
  26.         <td>{{ employee.econtact }}</td>  
  27.         <td>  
  28.             <a href="/edit/{{ employee.id }}"><span class="glyphicon glyphicon-pencil" >Edit</span></a>  
  29.             <a href="/delete/{{ employee.id }}">Delete</a>  
  30.         </td>  
  31.     </tr>  
  32. {% endfor %}  
  33.     </tbody>  
  34. </table>  
  35. <br>  
  36. <br>  
  37. <center><a href="/emp" class="btn btn-primary">Add New Record</a></center>  
  38. </body>  
  39. </html>  
Reply all
Reply to author
Forward
0 new messages