1

I am getting a value error when submitting a form in Django. I have successfully connected the MySQL database in XAMPP. I can not find a solution to this.Here is my form code,

     <form class="user" method="POST">
                {% csrf_token %}
                <div class="form-group">
                  <input type="text" class="form-control form-control-user" id="Cus_name" name="Cus_name" placeholder="Enter Customer Name...">
                </div>
                <div class="form-group">
                  <input type="text" class="form-control form-control-user" id="Cus_address" name="Cus_address" placeholder="Enter Address... ">
                </div>
                 <div class="form-group">
                  <input type="email" class="form-control form-control-user" id="Cus_email"  placeholder="Enter Email Address...">
                </div>
                 <div class="form-group">
                  <input type="text" class="form-control form-control-user" id="Purpose"  placeholder="Enter Purpose...">
                </div>
                 <div class="form-group">
                  <input type="date" class="form-control form-control-user" id="Date"  placeholder="Enter Date...">
                </div>
                 <div class="form-group">
                  <input type="time" class="form-control form-control-user" id="Time" placeholder="Enter Time...">
                </div>
                 <div class="form-group">
                  <input type="text" class="form-control form-control-user" id="Venue" placeholder="Enter Venue...">
                </div>
                <button name="submit" type="submit" class="btn btn-success">Submit</button>
                <hr>
             </form>

Here is my Views.py

from django.shortcuts import render
from .models import AppointmentDet
from django.contrib import messages

def InsertDetails(request):
    if request.method == 'POST':
        if request.POST.get('Cus_name') and request.POST.get('Cus_address') and request.POST.get('Cus_email') and request.POST.get('Purpose') and request.POST.get('Date') and request.POST.get('Time') and request.POST.get('Venue'):
            saverecord = AppointmentDet()
            saverecord.Cus_name = request.POST.get('Cus_name')
            saverecord.Cus_name = request.POST.get('Cus_address')
            saverecord.Cus_name = request.POST.get('Cus_email')
            saverecord.Cus_name = request.POST.get('Purpose')
            saverecord.Cus_name = request.POST.get('Date')
            saverecord.Cus_name = request.POST.get('Time')
            saverecord.Cus_name = request.POST.get('Venue')
            saverecord.save()
            messages.success(request, "details saved successfully!")
            return render(request, "appform.html")
    else:
            return render(request, "appform.html") 

Here is the error I am getting when running the server.

ValueError at / The view Management.views.InsertDetails didn't return an HttpResponse object. It returned None instead.

I tried some solutions but did not work.

1 Answers1

2

You should read this little tutorial on how to work with forms:

https://docs.djangoproject.com/en/3.1/topics/forms/

When the data is sent, you should first cast the post into a form class object. Then you have to call "is_valid()" on said form.

Only after this method call the post data are in the object.

This is the example from django:

def get_name(request):
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = NameForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            # ...
            # redirect to a new URL:
            return HttpResponseRedirect('/thanks/')
    # if a GET (or any other method) we'll create a blank form
    else:
        form = NameForm()
    return render(request, 'name.html', {'form': form})`
gxor
  • 335
  • 3
  • 11