I am trying to make a website form for someone to select what equipment they need, and have another for returning the equipment.
I have it all set up and can see it in the admin panel. Everything is working fine except when navigating to the return page, as this is set out a little different to the original form to collect (instead of Comments
it’s ReturnDate
).
I have this set as DateField
apposed and ran the migrations. Now when navigating to the page, I cannot see a Calander to select a date to return the equipment.
Any help would be much appreciated; I’m fairly new to Python, Django.
I will attach my views, models, form, etc., so you can see what I have done.
VIEWS
from django.shortcuts import render
from django.http import JsonResponse
from main.models import WFHSHEET
from django.http import HttpResponse, response, HttpResponseRedirect
from .forms import WFHLIST, RETURNLIST
from django.core.mail import send_mail
# Create your views here.
def home(response):
return render(response, 'home.html', {})
def wfhsheet(response):
if response.method == "POST":
form = WFHLIST(response.POST)
if form.is_valid():
form.save()
else:
form = WFHLIST()
return render(response, "form.html", {"form":form})
def returnsheet(response):
if response.method == "POST":
form = RETURNLIST(response.POST)
if form.is_valid():
form.save()
else:
form = RETURNLIST()
return render(response, "returnform.html", {"form":form})
FORMS.PY
from django import forms
from django.forms import ModelForm
from .models import WFHSHEET, RETURNSHEET
class WFHLIST(ModelForm):
firstname = forms.CharField(max_length=100, required=True)
lastname = forms.CharField(max_length=100, required=True)
email = forms.EmailField(max_length=150, required=True)
phone = forms.CharField(max_length=13, required=True)
PC_tower = forms.BooleanField(required=False)
Monitor = forms.BooleanField(required=False)
Keyboard = forms.BooleanField(required=False)
Mice = forms.BooleanField(required=False)
PowerLeads = forms.BooleanField(required=False)
VGA = forms.BooleanField(required=False)
DVI = forms.BooleanField(required=False)
DisplayPort = forms.BooleanField(required=False)
Ethernet = forms.BooleanField(required=False)
Headset = forms.BooleanField(required=False)
Comments = forms.CharField(max_length=300, required=False)
class Meta:
model = WFHSHEET
fields = ['firstname', 'lastname', 'email', 'phone',
'PC_tower', 'Monitor', 'Keyboard', 'Mice', 'PowerLeads',
'VGA', 'DVI', 'DisplayPort', 'Ethernet', 'Headset', 'Comments']
class RETURNLIST(ModelForm):
firstname = forms.CharField(max_length=100, required=True)
lastname = forms.CharField(max_length=100, required=True)
email = forms.EmailField(max_length=150, required=True)
phone = forms.CharField(max_length=13, required=True)
PC_tower = forms.BooleanField(required=False)
Monitor = forms.BooleanField(required=False)
Keyboard = forms.BooleanField(required=False)
Mice = forms.BooleanField(required=False)
PowerLeads = forms.BooleanField(required=False)
VGA = forms.BooleanField(required=False)
DVI = forms.BooleanField(required=False)
DisplayPort = forms.BooleanField(required=False)
Ethernet = forms.BooleanField(required=False)
Headset = forms.BooleanField(required=False)
ReturnDate = forms.DateField(required=True)
class Meta:
model = RETURNSHEET
fields = ['firstname', 'lastname', 'email', 'phone',
'PC_tower', 'Monitor', 'Keyboard', 'Mice', 'PowerLeads',
'VGA', 'DVI', 'DisplayPort', 'Ethernet', 'Headset', 'ReturnDate']
MODELS.PY
from django.db import models
# Create your models here.
class WFHSHEET(models.Model):
firstname = models.CharField(max_length=100)
lastname = models.CharField(max_length=100)
email = models.EmailField()
phone = models.CharField(max_length=100)
PC_tower = models.BooleanField()
Monitor = models.BooleanField()
Keyboard = models.BooleanField()
Mice = models.BooleanField()
PowerLeads = models.BooleanField()
VGA = models.BooleanField()
DVI = models.BooleanField()
DisplayPort = models.BooleanField()
Ethernet = models.BooleanField()
Headset = models.BooleanField()
Comments = models.CharField(max_length=300)
def __str__(self):
return self.firstname
class RETURNSHEET(models.Model):
firstname = models.CharField(max_length=100)
lastname = models.CharField(max_length=100)
email = models.EmailField()
phone = models.CharField(max_length=100)
PC_tower = models.BooleanField()
Monitor = models.BooleanField()
Keyboard = models.BooleanField()
Mice = models.BooleanField()
PowerLeads = models.BooleanField()
VGA = models.BooleanField()
DVI = models.BooleanField()
DisplayPort = models.BooleanField()
Ethernet = models.BooleanField()
Headset = models.BooleanField()
ReturnDate = models.DateField()
def __str__(self):
return self.firstname
TEMPLATES
{% extends 'home.html' %}
<!DOCTYPE html>
<html lang="en">
{% block title %}WFH-Form{% endblock %}
<head>
</head>
{% block content %}
{% load crispy_forms_tags %}
<body>
<h2>WFH-Sheet</h2>
<form method="post" action="{% url 'wfhsheet' %}" enctype="multipart/form-data">
{% csrf_token %}
{{form|crispy}}
<button type="submit" , name="submit">Submit</button>
</form>
</body>
{% endblock %}
</html>
{% extends 'home.html' %}
<!DOCTYPE html>
<html lang="en">
{% block title %}Return-Form{% endblock %}
<head>
</head>
{% block content %}
{% load crispy_forms_tags %}
<body>
<h2>Return-Sheet</h2>
<form method="post" action="{% url 'returnsheet' %}" enctype="multipart/form-data">
{% csrf_token %}
{{form|crispy}}
<button type="submit" , name="submit">Submit</button>
</form>
</body>
{% endblock %}
</html>
Following is fine on the main form:
I need the following to be a date selector: