0

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:

This is fine on the main form

I need the following to be a date selector:

I need this to be a date selector

Azhar Khan
  • 3,829
  • 11
  • 26
  • 32
LJ3
  • 5
  • 3

1 Answers1

0

You need a datepicker, the answers to this question show several relatively simple solutions: What's the cleanest, simplest-to-get running datepicker in Django?

StefanoTrv
  • 199
  • 7