GET 方法和提交表单时出现运行时错误

问题描述 投票:0回答:1

我刚刚完成迁移,然后我想在点击提交按钮后将数据存储在数据库中,它显示如图所示的错误,所以请告诉我如何清除错误

模型.py

from django.db import models
# Create your models here.
class register(models.Model):
    your_name = models.CharField(max_length=30)
    Email= models.EmailField(max_length=254)
    phone= models.IntegerField(max_length=13)
    account = models.CharField(max_length=10)
    message = models.CharField(max_length=300)

错误页面

Internal Server Error: /register
Traceback (most recent call last):
  File "J:\good\test\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "J:\good\test\Lib\site-packages\django\utils\deprecation.py", line 136, in __call__
    response = self.process_response(request, response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "J:\good\test\Lib\site-packages\django\middleware\common.py", line 108, in process_response
    return self.response_redirect_class(self.get_full_path_with_slash(request))
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "J:\good\test\Lib\site-packages\django\middleware\common.py", line 87, in get_full_path_with_slash
    raise RuntimeError(
RuntimeError: You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to 127.0.0.1:8000/register/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings.
[29/Sep/2023 20:35:21] "POST /register HTTP/1.1" 500 70661

在此视图文件中包含寄存器文件。

views.py

from django.shortcuts import render,redirect
from django.contrib.auth.models import User
# Create your views here.
def index(request):
    return render(request,"index.html")
def contact(request):
    return render(request,"contact.html")

def ideagained(request):
    return render(request,"idea_gained.html")

def idea(request):
    return render(request,"idea.html")

def ouridea(request):
    return render(request,"our_idea.html")

def aboutpage(request):
    return render(request,"aboutpage.html")

def register(request):
        your_name=request.POST['name']
        email=request.POST['email']
        phone_number=request.POST['phone_number']
        account=request.POST['account']
        message=request.POST['message']
         

        user=user.objects.create_user(name=name)
        print("we wil call back you")
        return redirect('/')
 


   

django django-models django-rest-framework django-views django-forms
1个回答
0
投票

密钥

name
不存在。

from .models import User

def register(request):
    your_name=request.POST['name']
    email=request.POST['email']
    phone_number=request.POST['phone_number']
    account=request.POST['account']
    message=request.POST['message']
    user=User.objects.create_user(your_name=your_name, email=email, phone_number=phone_number, account=account, message=message)
    print("we wil call back you")
    return redirect('/')

请注意,我们倾向于使用 CamelCase 命名模型,并使用小写字母命名字段。通常模型也是一个名词。因此你的模型应该是:

class User(models.Model):
    your_name = models.CharField(max_length=30)
    email= models.EmailField(max_length=254)
    phone= models.IntegerField(max_length=13)
    account = models.CharField(max_length=10)
    message = models.CharField(max_length=300)
© www.soinside.com 2019 - 2024. All rights reserved.