Hello wonderful people.
I am currently learning Django and trying to display the database which is created via form on inventiory_view.html
I am unable to do so via shell scripting.
I am able to display the objects via shell terminal but whenever I use the same command which is Form1.objects.all
I am unable to display it on my desired html page.
I would really appreciate your help in this matter.
Thanks in advance
This is the form1.html where I am getting the data from the user.
{% extends 'base.html' %}
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
{% block title %} Title of Form1 {% endblock %}
</head>
{% block body %}
<div class="container">
<h1>Form1</h1>
<form method="POST" action=" /form1/">
{% csrf_token %}
<div class="form-group">
<label for="exampleFormControlInput1">Item name</label>
<input type="text" class="form-control" id="exampleFormControlInput1" name= "item" placeholder="laptop">
</div>
<!-- <div class="form-group">
<label for="exampleFormControlInput1">Quantity </label>
<input type="number" class="form-control" id="exampleFormControlInput1" name= "quantity" placeholder="1,2,3">
</div> -->
<div class="form-group">
<label for="exampleFormControlSelect1">Quantity</label>
<select class="form-control" input type="number" id="exampleFormControlSelect1" name= "quantity">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="form-group">
<label for="exampleFormControlInput1">Vendor name</label>
<input type="text" class="form-control" id="exampleFormControlInput1" name= "vendor" placeholder="Nokia">
</div>
<div class="form-group">
<label for="exampleFormControlInput1">Inward Number</label>
<input type="number" class="form-control" id="exampleFormControlInput1" name= "inward" placeholder="2569">
</div>
<button type="submit" > Submit</button>
</form>
<a href="{% url 'export-csv' %}" class = "btn btn-secondary">Export CSV</a>
{% endblock %}
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</html>
views.py
from django.shortcuts import render, HttpResponse
from form.models import Form1
from django.core.mail import send_mail
from django.conf import settings
from django.db import models
import csv
# Create your views here.
def index(request):
return render(request, 'index.html')
# return HttpResponse("homepage")
def form1(request):
if request.method == "POST":
item = request.POST.get('item')
quantity = request.POST.get('quantity')
vendor = request.POST.get('vendor')
inward = request.POST.get('inward')
form1 = Form1(item = item, quantity = quantity , vendor=vendor , inward= inward)
form1.save()
send_mail(
'Test Email from IT team',
'We have received ' + str(quantity) + ' quantity of ' + item + ' from ' + vendor + ' \n Inward Register Number' + str(inward) ,
# 'Hello, IT team. Whenever an inventory will be added you will get the email sent to you or anyone who is concerned' ,
'techdevio20@example.com',
['sam.atharkar@gmail.com'],
fail_silently=False,
)
return render(request, 'form1.html')
# return HttpResponse("Form 1 ")
def export_csv(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="inventory.csv"'
writer= csv.writer(response)
writer.writerow(['item', 'inward', 'quantity', 'vendor name'])
inventory = Form1.objects.all()
models.py
from django.db import models
# Create your models here.
class Form1(models.Model):
item = models.CharField(max_length=20)
quantity = models.IntegerField()
vendor = models.CharField(max_length=20)
inward = models.IntegerField()
def __str__(self):
return self.item
urls.py
from django.contrib import admin
from django.urls import path
from form import views
urlpatterns = [
path('',views.index, name = 'home'),
path('form1/',views.form1, name = 'form1'),
path('form2/',views.form2, name = 'form2'),
path('login/',views.login, name = 'login'),
path('signup/',views.signup, name = 'signup'),
path('search/',views.search, name = 'search'),
path('inventory_view/',views.inventory_view, name = 'inventory_view'),
]