【发布时间】:2020-01-01 08:33:57
【问题描述】:
帮助我解决以下问题(我只是初学者,(即使我可能不会以正确的方式提出问题))。 我还需要为您提供什么。
students() 得到了一个意外的关键字参数“stu_name” 请求方法:POST 请求网址:http://127.0.0.1:8000/students
enter code hereDjango 版本:2.2.5 异常类型:TypeError 异常值: 学生()有一个意外的关键字参数“stu_name” 异常位置:C:\Users\GAGAN\Desktop\tarkProject\myapp\views.py in students,第 18 行 Python 可执行文件:C:\Users\GAGAN\Anaconda3\envs\djangoenv\python.exe Python版本:3.7.5 蟒蛇路径: ['C:\Users\GAGAN\Desktop\tarkProject', 'C:\Users\GAGAN\Anaconda3\envs\djangoenv\python37.zip', 'C:\Users\GAGAN\Anaconda3\envs\djangoenv\DLLs', 'C:\Users\GAGAN\Anaconda3\envs\djangoenv\lib', 'C:\Users\GAGAN\Anaconda3\envs\djangoenv', 'C:\Users\GAGAN\Anaconda3\envs\djangoenv\lib\site-packages'] 服务器时间:2020 年 1 月 1 日星期三 06:23:38 +0000'''
views.py
from django.shortcuts import render
from .models import students
# Create your views here.
def home(request):
return render (request, 'myapp/home.html')
def contact(request):
return render (request, 'myapp/contact.html')
def students(request):
if request.method == 'POST':
name = request.POST.get('stu_name')
father = request.POST.get('stu_father')
mother = request.POST.get('stu_mother')
cl = request.POST.get('stu_class')
s = students(stu_name=name, stu_father=father, stu_mother=mother, stu_class=cl)
s.save()
return render (request, 'myapp/students.html')
else:
return render (request, 'myapp/students.html')
models.py
from django.db import models
# Create your models here.
class contact(models.Model):
stu_name = models.CharField(max_length=30)
stu_father = models.CharField(max_length=30)
stu_mother = models.CharField(max_length=30)
# stuClass = models.CharField(max_length=30)
def __str__(self):
return self.stu_name
class students(models.Model):
stu_name = models.CharField(max_length=30)
stu_father = models.CharField(max_length=30)
stu_mother = models.CharField(max_length=30)
stu_class = models.CharField(max_length=10)
def __str__(self):
return self.stu_name
【问题讨论】:
-
你有一个名为
students的函数和模型。您应该按照约定命名您的模型:Student(单数,首字母大写)以防止出现此类问题。 -
先生如您所说将学生改为学生,但问题未解决
-
您是否运行过 makemigrations 然后进行迁移?
-
是的先生,我已经从迁移文件夹中删除了 dbsqlite 和 001 002 并完成了 makemigrations 并再次迁移。但是“Student() 得到了一个意外的关键字参数‘stu_name’”的问题
-
先生问题已解决。根据您的建议,我更改了班级名称。但我也错误地更改了函数名称。现在保持函数名和类名学生不同,我解决了这个问题。非常感谢先生。