首页 > 解决方案 > 当我尝试在 django 中保存对象时出现错误

问题描述

帮助我解决以下问题(我只是初学者,(即使我可能不会以正确的方式提出问题))。我还需要为您提供什么。

学生()得到了一个意外的关键字参数'stu_name' 请求方法:POST 请求 URL: http: //127.0.0.1enter code here :8000/students Django 版本:2.2.5 异常类型:TypeError 异常值:学生()得到了一个意外的关键字参数'stu_name' 异常位置:C:\Users\GAGAN\Desktop\tarkProject\myapp\views.py 在学生中,第 18 行 Python 可执行文件:C:\Users\GAGAN\Anaconda3\envs\djangoenv\python.exe Python 版本:3.7 .5 Python 路径:['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'''

视图.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')

模型.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

标签: pythondjango

解决方案


students(stu_name=name, stu_father=father, stu_mother=mother, stu_class=cl) 是调用您的函数,而不是实例化模型。因为,您的功能和型号名称是相同的。

解决方案:

  1. 为了保持命名约定,将模型名称更改studentsStudent
  2. python manage.py makemgirations
  3. python manage.py migrate

推荐阅读