1

In this Users app, template does not exist showing but template is already exist. I am new in Django. I have tried so many times but unable to solve this. Please help to solve this.

Users App:

urls.py:

from Users import views as user_views
from django.contrib.auth import views as auth_views

path('register/',user_views.register,name='register'),
path('login/',auth_views.LoginView.as_view(template_name='users/login.html'),name='login'),
path('logout/',auth_views.LogoutView.as_view(template_name='users/logout.html'),name='logout'),

views.py:

from django.shortcuts import redirect, render
from django.contrib import messages
from .forms import RegisterForm

# Create your views here.
app_name = 'Users'

def register(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid:
            form.save()
            username = form.cleaned_data.get('username')
            messages.success(request,f'Welcome { username }, your account is created')
            return redirect('login')
    else:
        form = RegisterForm()
    return render(request,'users/register.html',{'form':form})

forms.py:

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm

app_name = 'Users'

class RegisterForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username','email','password1','password2']

Templates: register.html:

<form method="post">
    {% csrf_token %}
    {{form}}
    <button type="submit">SignUp</button>
</form>

login.html:

<form method="post">
    {% csrf_token %}
    {{form}}
    <button type="submit">Login</button>
</form>

logout.html:

<h1>You have been logged out</h1>

dashboard app: user_home.html:

<div>
                    {% if users.is_authenticated %}
                        <a href="{% url 'logout' %}" class="dashboard-nav-item"><i class="fas fa-sign-out-alt"></i> Logout </a>
                    {% else %}
                    <a href="{% url 'login' %}" class="dashboard-nav-item"><i class="fas fa-sign-out-alt"></i> Login </a>
                    {% endif %}
                </div>
{% if messages %}
                    {% for message in messages %}
                        <div class="alert alert-{{ message.tag }}">
                            {{message}}
                        </div>
                    {% endfor %}
                {% endif %}

settings.py:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        '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',
            ],
        },
    },
]

Project: mysite3 urls.py:

from django.contrib import admin  
from django.urls import path
from django.urls.conf import include 
from dashboard import views 
from django.conf import settings
from django.conf.urls.static import static
from Users import views as user_views
from django.contrib.auth import views as auth_views
urlpatterns = [
    path('',views.user_home,name='user_home'),
    path('usermaster/',include(('usermaster.urls','url'), namespace='url')),
    path('admin/', admin.site.urls),
    path('register/',user_views.register,name='register'),
    path('login/',auth_views.LoginView.as_view(template_name='users/login.html'),name='login'),
    path('logout/',auth_views.LogoutView.as_view(template_name='users/logout.html'),name='logout'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

usermaster app: urls.py:

from usermaster import views
from django.urls import path


app_name = 'usermaster' 

urlpatterns = [
    path('',views.home), 
    path('machine_master/',views.index,name='index'),  
    path('addnew',views.addnew),  
    path('edit/<int:id>', views.edit),  
    path('update/<int:id>', views.update),  
    path('delete/<int:id>', views.destroy),  

]

views.py:

from django.shortcuts import render, redirect  
from usermaster.forms import MachineForm  
from usermaster.models import Machine  
# Create your views here.

def home(request):
    return render(request,'usermaster/home.html')

def addnew(request):  
    if request.method == "POST":  
        form = MachineForm(request.POST)  
        if form.is_valid():  
            try:  
                form.save()  
                return redirect('/')  
            except:  
                pass 
    else:  
        form = MachineForm()  
    return render(request,'usermaster/index.html',{'form':form})

def index(request):  
    machines = Machine.objects.all()  
    return render(request,"usermaster/show.html",{'machines':machines})

def edit(request, id):  
    machine = Machine.objects.get(id=id)  
    return render(request,'usermaster/edit.html', {'machine':machine})

def update(request, id):  
    machine = Machine.objects.get(id=id)  
    form = MachineForm(request.POST, instance = machine)  
    if form.is_valid():  
        form.save()  
        return redirect("/")  
    return render(request, 'usermaster/edit.html', {'machine': machine})

def destroy(request, id):  
    machine = Machine.objects.get(id=id)  
    machine.delete()  
    return redirect("/")

models.py:

from django.db import models

# Create your models here.
class Machine(models.Model):  
    machine_name = models.CharField(max_length=100)
    operation_no = models.IntegerField()

  
    class Meta:  
        db_table = "machine"

forms.py:

from django import forms  
from usermaster.models import Machine  
class MachineForm(forms.ModelForm):  
    class Meta:  
        model = Machine 
        fields = ['machine_name','operation_no'] #https://docs.djangoproject.com/en/3.0/ref/forms/widgets/
        widgets = { 'machine_name': forms.TextInput(attrs={ 'class': 'form-control' }),
            'operation_no': forms.TextInput(attrs={ 'class': 'form-control' }),
      }

templates: base.html:

<!DOCTYPE html>  
<html lang="en">  
<head>  
<meta charset="UTF-8">  
<title>{% block title %}{% endblock %}</title>
{% load static %}  
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
 
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/dataTables.bootstrap4.min.js"></script>
</head> 
<body>
<div class="container">
 <div class="row">
    {% block content %}{% endblock %}
 </div>
</div>
<script>
$(document).ready(function() {
    $('#bootstrapdatatable').DataTable({     
      "aLengthMenu": [[3, 5, 10, 25, -1], [3, 5, 10, 25, "All"]],
        "iDisplayLength": 3
       } 
    );
} );
</script>
</body> 
</html>

edit.html:

{% extends 'usermaster/base.html' %}
 
{% block title %}Add New Machine Records{% endblock title %}
 
{% block content %}
<div class="col-md-12">
 <form method="post" class="post-form" action="/update/{{machine.id}}">  
   {% csrf_token %}  
  <div class="container">  
 <br>  
  <div class="form-group row">  
  <label class="col-sm-1 col-form-label"></label>  
  <div class="col-sm-4">  
  <h3>Update Details</h3>  
  </div>  
   </div>  
  <div class="form-group row">  
  <label class="col-sm-2 col-form-label">Machine Id:</label>  
  <div class="col-sm-4">  
   <input type="text" class="form-control" name="id" id="id_id" required maxlength="20" value="{{ machine.id }}"/>  
  </div>  
   </div>  
   <div class="form-group row">  
  <label class="col-sm-2 col-form-label">Machine Name:</label>  
  <div class="col-sm-4">  
   <input type="text" class="form-control" name="machine_name" id="id_name" required maxlength="100" value="{{ machine.machine_name }}" />  
  </div>  
   </div>  
  <div class="form-group row">  
  <label class="col-sm-2 col-form-label">Operation number:</label>  
  <div class="col-sm-4">  
   <input type="text" class="form-control" name="operation_no" id="id_no" required maxlength="254" value="{{ machine.operation_no }}" />  
  </div>  
   </div>  
  <div class="form-group row">  
  <label class="col-sm-1 col-form-label"></label>  
  <div class="col-sm-4">  
  <button type="submit" class="btn btn-success btn-lg">Update</button>  
  </div>  
   </div>  
  </div>  
 </form>  
{% endblock content %} 

home.html:

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="{% static 'usermaster/style.css' %}">
    <title>Document</title>
</head>
<body>
    <div class='dashboard'>
        <div class="dashboard-nav">
            <header><a href="#!" class="menu-toggle"><i class="fas fa-bars"></i></a><a href="#"
                                                                                       class="brand-logo"><i
                    class="fas fa-anchor"></i> <span>ASHOK IRON</span></a></header>
            <nav class="dashboard-nav-list"><a href="#" class="dashboard-nav-item active"><i class="fas fa-home"></i>
                HOME </a><a
                    href="#" class="dashboard-nav-item"><i class="fas fa-tachometer-alt"></i> MASTER
            </a>
                <a href="{% url 'usermaster:index' %}" class="dashboard-nav-item"><i class="fas fa-cogs"></i> MACHINE MASTER </a><a
                        href="#" class="dashboard-nav-item"><i class="fas fa-user"></i> USERS </a><a
                        href="#" class="dashboard-nav-item"><i class="fas fa-user"></i> VIDEOS </a>
              <div class="nav-item-divider"></div>
              <a
                        href="#" class="dashboard-nav-item"><i class="fas fa-sign-out-alt"></i> Logout </a>
            </nav>
        </div>
        <div class='dashboard-app'>
            <header class='dashboard-toolbar'><a href="#!" class="menu-toggle"><i class="fas fa-bars"></i></a></header>
            <div class='dashboard-content'>
                <div class='container'>

                </div>
            </div>
        </div>
    </div>
</body>
<script type="text/javascript">
    const mobileScreen = window.matchMedia("(max-width: 990px )");
    $(document).ready(function () {
        $(".dashboard-nav-dropdown-toggle").click(function () {
            $(this).closest(".dashboard-nav-dropdown")
                .toggleClass("show")
                .find(".dashboard-nav-dropdown")
                .removeClass("show");
            $(this).parent()
                .siblings()
                .removeClass("show");
        });
        $(".menu-toggle").click(function () {
            if (mobileScreen.matches) {
                $(".dashboard-nav").toggleClass("mobile-show");
            } else {
                $(".dashboard").toggleClass("dashboard-compact");
            }
        });
    });
    </script>
</html>

index.html:

    {% extends 'usermaster/base.html' %}
     
    {% block title %}Add New Machine Records{% endblock title %}
     
    {% block content %}
    <div class="col-md-12"> 
             
     <form method="POST" class="post-form" action="/addnew">  
       {% csrf_token %}  
      <div class="container">  
     <br>  
      <div class="form-group row">  
      <label class="col-sm-1 col-form-label"></label>  
      <div class="col-sm-4">  
      <h3>Enter Machine Details</h3>  
      </div>  
       </div>  
       
       <div class="form-group row">  
      <label class="col-sm-2 col-form-label">Machine Name:</label>  
      <div class="col-sm-4">  
        {{ form.machine_name }}  
      </div>  
       </div>  
      <div class="form-group row">  
      <label class="col-sm-2 col-form-label">Operation Number:</label>  
      <div class="col-sm-4">  
        {{ form.operation_no }}  
      </div>  
       </div>  
      <div class="form-group row">  
      <label class="col-sm-1 col-form-label"></label>  
      <div class="col-sm-4">  
      <button type="submit" class="btn btn-primary">Submit</button>  
      </div>  
       </div>  
      </div>  
     </form>  
    </div> 
    {% endblock content %}

**show.html:**
{% extends 'usermaster/base.html' %} 
{% block title %}Machine Records{% endblock title %}
 
{% block content %}
 <div class="col-md-12">
        <h4>Add New Machine Records</h4> <span><a href="/addnew" class="btn btn-primary">Add New Record</a></span>  
        <div class="table-responsive">
  <table id="bootstrapdatatable" class="table table-striped table-bordered" width="100%">
            <thead>
                <th><input type="checkbox" id="checkall" /></th>
                <th>ID</th>
                <th>Machine Name</th>
                <th>Operation Number</th>
                <th>Edit</th>
                <th>Delete</th>
             </thead>
   <tbody>
   {% for machine in machines %}  
    <tr>  
     <td><input type="checkbox" class="checkthis" /></td>
     <td>{{ machine.id }}</td>  
     <td>{{ machine.machine_name }}</td>  
     <td>{{ machine.operation_no }}</td>   
     <td><p data-placement="top" data-toggle="tooltip" title="Edit"><a href="/edit/{{ machine.id }}" class="btn btn-primary btn-xs" data-title="Edit" data-toggle="modal" data-target="#edit" ><span class="glyphicon glyphicon-pencil"></span></a></p></td>
     <td><p data-placement="top" data-toggle="tooltip" title="Delete"><a href="/delete/{{ machine.id }}" class="btn btn-danger btn-xs" data-title="Delete" data-toggle="modal" data-target="#delete" ><span class="glyphicon glyphicon-trash"></span></a></p></td>  
    </tr>  
   {% endfor %} 
   </tbody>
         
  </table>
        </div>
    </div>
{% endblock content %}

dashboard app: views.py:

from django.shortcuts import render

# Create your views here.
def user_home(request):
    return render(request,'dashboard/user_home.html')

templates: user_home.html:

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="{% static 'usermaster/style.css' %}">
    <title>Document</title>
</head>
<body>
    <div class='dashboard'>
        <div class="dashboard-nav">
            <header><a href="#!" class="menu-toggle"><i class="fas fa-bars"></i></a><a href="#"
                                                                                       class="brand-logo"><i
                    class="fas fa-anchor"></i> <span>ASHOK IRON</span></a></header>
            <nav class="dashboard-nav-list"><a href="#" class="dashboard-nav-item active"><i class="fas fa-home"></i>
                HOME </a><a
                    href="#" class="dashboard-nav-item"><i class="fas fa-tachometer-alt"></i> CONTROL PROCESS
            </a>
                <a href="#" class="dashboard-nav-item"><i class="fas fa-cogs"></i> PROCESS SHEET </a><a
                        href="#" class="dashboard-nav-item"><i class="fas fa-user"></i>SKILL MATRIX </a><a
                        href="#" class="dashboard-nav-item"><i class="fas fa-user"></i> MAINTENANCE </a><a
                        href="#" class="dashboard-nav-item"><i class="fas fa-user"></i> SWS </a><a
                        href="#" class="dashboard-nav-item"><i class="fas fa-user"></i> SAFETY </a><a
                        href="#" class="dashboard-nav-item"><i class="fas fa-user"></i> PFD </a>
              <div class="nav-item-divider"></div>
              <a
                        href="#" class="dashboard-nav-item"><i class="fas fa-sign-out-alt"></i> Logout </a>
            </nav>
        </div>
        <div class='dashboard-app'>
            <header class='dashboard-toolbar'><a href="#!" class="menu-toggle"><i class="fas fa-bars"></i></a>
                <div>
                    {% if users.is_authenticated %}
                        <a href="{% url 'logout' %}" class="dashboard-nav-item"><i class="fas fa-sign-out-alt"></i> Logout </a>
                    {% else %}
                    <a href="{% url 'login' %}" class="dashboard-nav-item"><i class="fas fa-sign-out-alt"></i> Login </a>
                    {% endif %}
                </div>
            </header>
                {% if messages %}
                    {% for message in messages %}
                        <div class="alert alert-{{ message.tag }}">
                            {{message}}
                        </div>
                    {% endfor %}
                {% endif %}
            <div class='dashboard-content'>
                <div class='container'>

                </div>
            </div>
        </div>
    </div>
</body>
<script type="text/javascript">
    const mobileScreen = window.matchMedia("(max-width: 990px )");
    $(document).ready(function () {
        $(".dashboard-nav-dropdown-toggle").click(function () {
            $(this).closest(".dashboard-nav-dropdown")
                .toggleClass("show")
                .find(".dashboard-nav-dropdown")
                .removeClass("show");
            $(this).parent()
                .siblings()
                .removeClass("show");
        });
        $(".menu-toggle").click(function () {
            if (mobileScreen.matches) {
                $(".dashboard-nav").toggleClass("mobile-show");
            } else {
                $(".dashboard").toggleClass("dashboard-compact");
            }
        });
    });
    </script>
</html>
Manoj Tolagekar
  • 1,816
  • 2
  • 5
  • 22

0 Answers0