ValueError at /form Представление authentication.views.my_form не вернуло объект HttpResponse. Вместо этого оно вернуло None

Я пытаюсь создать форму, но сталкиваюсь с проблемами, любая помощь будет оценена по достоинству. Заранее спасибо. Ниже приведен мой views.py

from django.contrib.auth import authenticate, login, logout
from django.contrib.sites.shortcuts import get_current_site
from django.core.mail import send_mail, EmailMessage
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.contrib.auth.models import User
from django.contrib import messages
from django.template.loader import render_to_string
from django.utils.encoding import force_bytes, force_text
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from . tokens import generate_token
from Database import settings
from django.shortcuts import render
from .models import Inventory_Details
from .forms import MyForm

def my_form(request):
    if request.method == "POST":
        form = my_form(request.POST)
        if form.is_valid():
            form.save()
        else:
            form = my_form()
            return render(request, "authentication/Inventory_details.html", {'form': form})

detail.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Inventory_details</title>
</head>
<body>
<div class="container">
    <form method="POST">
      <fieldset>
        <legend>Form</legend>
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit" class="btn btn-primary">Submit</button>
      </fieldset>
    </form>
</div>
</body>
</html>

Ниже приведено сообщение об ошибке:

Ошибка значения в /form

Представление authentication.views.my_form не вернуло объект HttpResponse объект. Вместо этого оно вернуло None.

Спасибо

Мне кажется, вы допустили ошибку. Часть else должна быть частью первого оператора if.

вместо:

def my_form(request):
    if request.method == "POST":
        form = my_form(request.POST) #You mispelled my_form. You imported from .forms import MyForm. write MyForm here instead of my_form
        if form.is_valid():
            form.save()
        else: #You did mistake here that's why you got that error
            form = my_form()
            return render(request, "authentication/Inventory_details.html", {'form': form})

измените это:

def my_form(request):
    if request.method == "POST":
        form = MyForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('/home/') #Add your path here
    else:
        form = MyForm()
    return render(request, "authentication/Inventory_details.html", {'form': form})
Вернуться на верх