首页 > 解决方案 > 我正在合并多个表单,并在 django 的注册表单中获取 ValueError/,同时链接到另一个表单数据库

问题描述

[这是使用 print 来检查的更新代码][1]我得到了ValueErrorat /Register。错误是:

The view Capp.views.Insertrecord didn't return an HttpResponse object. It returned None instead.

我正在合并各种html形式。即使检查了变量,它到处都是一样的。我在models.py此处附上了 [ ] 图片以供参考。所有表格都可以正常工作,但是在单击注册表单的提交按钮后,发生了此错误。 视图.py

# Create your views here.
from django.shortcuts import render,redirect 
from .form import  company_insert_Form 
from .models import company_insert, subscrip, register,ProInsert

from django.shortcuts import get_object_or_404, render

from django.contrib import messages


def index(request):
  if request.method == "POST": 
      form= company_insert_Form(data=request.POST,files=request.FILES) 
      if form.is_valid(): 
          form.save() 
          obj=form.instance 
          return render(request,"product_details.html") 
  else: 
      form=company_insert_Form() 
  img=company_insert.objects.all() 
  return render(request,"companydetails.html",{"form":form}) 

  
def Indexpage(request):
  return render(request,'frontpage.html')

def Insertrecord(request):
  if request.method=='POST':
      if request.POST.get('firstname') and request.POST.get('user_lastname') and request.POST.get('user_id') and request.POST.get('user_pass') and request.POST.get('confirm_user_pass') and request.POST.get('phone_code') and request.POST.get('mob_no') and request.POST.get('user_otp') :
        saverecord=  register()
        saverecord.firstname=request.POST.get('firstname')
        saverecord.user_lastname=request.POST.get('user_lastname')
        saverecord.user_id=request.POST.get('user_id')
        saverecord.user_pass=request.POST.get('user_pass')
        saverecord.confirm_user_pass=request.POST.get('confirm_user_pass')
        saverecord.phone_code=request.POST.get('phone_code')
        saverecord.mob_no=request.POST.get('mob_no')
        saverecord.user_otp=request.POST.get('user_otp')
        saverecord.save()
        messages.success(request,'The new user '+request.POST['user_id']+' Saved Successfully...!')
        return render(request,'subscription.html')
  else:
      return render(request,'index.html')


def LoginPage(request):
  if request.method=="POST":
      try:
          Userdetails=get_object_or_404(register,user_id=request.POST['user_id'],user_pass=request.POST['user_pass'])
          print("User Id=",Userdetails)
          request.session['user_id']=Userdetails.user_id
          return render(request,'frontpage.html')
      except register.DoesNotExist as e:
          messages.success(request,'User_id/Password invalid!')
  return render(request,'login.html')

def Subscription(request):
  if request.method=='POST':
      if request.POST.get('s_type') and request.POST.get('s_duration') and request.POST.get('s_amt') :
       savesubs=  subscrip()
       savesubs.s_type=request.POST.get('s_type')
       savesubs.s_duration=request.POST.get('s_duration')
       savesubs.s_amt=request.POST.get('s_amt')
       savesubs.save()
       messages.success(request,'Your '+request.POST['s_type']+' subscription is Successful!')
       return render(request,'companydetails.html') 
  else:
          return render(request,'subscription.html')


def InsertProduct(request):
  if request.method=='POST':
      if request.POST.get('pname') and request.POST.get('pcategory') and request.POST.get('pdetails') and request.POST.get('foundedin') and request.POST.get('orderoftest') and request.POST.get('t1') and request.POST.get('t2') and request.POST.get('t3') and request.POST.get('f1') and request.POST.get('f2') and request.POST.get('f3')and request.POST.get('f4')and request.POST.get('f5'):
        saveproduct=  ProInsert()
        saveproduct.pname=request.POST.get('pname')
        saveproduct.pcategory=request.POST.get('pcategory')
        saveproduct.pdetails=request.POST.get('pdetails')
        saveproduct.foundedin=request.POST.get('foundedin')
        saveproduct.orderoftest=request.POST.get('orderoftest')
        saveproduct.t1=request.POST.get('t1')
        saveproduct.t2=request.POST.get('t2')
        saveproduct.t3=request.POST.get('t3')
        saveproduct.f1=request.POST.get('f1')
        saveproduct.f2=request.POST.get('f2')
        saveproduct.f3=request.POST.get('f3')
        saveproduct.f4=request.POST.get('f4')
        saveproduct.f5=request.POST.get('f5')
        saveproduct.save()
        messages.success(request,'Product Added..!')
        return render(request,'frontpage.html')
  else:
      return render(request,'product_details.html')

模型.py:

from django.db import models

# Create your models here.
class company_insert(models.Model):
    compname=models.CharField(max_length=50)
    complogo=models.ImageField(upload_to="img/%y", null=True, blank=True)
    location=models.CharField(max_length=50)
    founded=models.IntegerField(50)
    revenue=models.PositiveBigIntegerField()
    customerserved=models.PositiveBigIntegerField()
    website=models.CharField(max_length=50)
    fname=models.CharField(max_length=50)
    pcontact=models.CharField(max_length=50)
    emailpcontact=models.CharField(max_length=50)
    phone=models.CharField(max_length=10)
    
    def __str__(self):
        return self.compname

    class Meta:
        db_table="company_details_trial"




class register(models.Model):
    firstname=models.CharField(max_length=50, null=True, blank=True)
    user_lastname=models.CharField(max_length=50)
    user_id=models.CharField(max_length=50)
    user_pass=models.CharField(max_length=20)
    confirm_user_pass=models.CharField(max_length=20)
    phone_code=models.CharField(max_length=10)
    mob_no=models.CharField(max_length=20)
    user_otp=models.CharField(max_length=10)
    
    class Meta:
        db_table="registration"

class subscrip(models.Model):
    s_type=models.CharField(max_length=1)
    s_duration=models.CharField(max_length=20)
    s_amt=models.CharField(max_length=20)

    class Meta:
        db_table="subscription"


class ProInsert(models.Model):
    pname=models.CharField(max_length=50)
    #complogo=models.ImageField(upload_to=get_filename, null=True, blank=True)
    pcategory=models.CharField(max_length=50)
    pdetails=models.CharField(max_length=500)
    foundedin=models.IntegerField(50)
    orderoftest=models.IntegerField(50)
    t1=models.CharField(max_length=500)
    t2=models.CharField(max_length=500)
    t3=models.CharField(max_length=500)
    f1=models.CharField(max_length=500)
    f2=models.CharField(max_length=100)
    f3=models.CharField(max_length=100)
    f4=models.CharField(max_length=100)
    f5=models.CharField(max_length=100)
    class Meta:
        db_table="step3and4"

追溯

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/Register

Django Version: 3.2.5
Python Version: 3.9.6
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'Capp']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback (most recent call last):
  File "C:\Users\Vaishnavi\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\Vaishnavi\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 188, in _get_response
    self.check_response(response, callback)
  File "C:\Users\Vaishnavi\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 309, in check_response
    raise ValueError(

Exception Type: ValueError at /Register
Exception Value: The view Capp.views.Insertrecord didn't return an HttpResponse object. It returned None instead.

标签: pythonmysqldjangoweb-development-server

解决方案


推荐阅读