我在djang保存对象时出错了

2024-06-17 13:13:08 发布

您现在位置:Python中文网/ 问答频道 /正文

请帮助我解决以下问题(我只是初学者,(即使我问的问题不正确)。 我还需要提供给你什么

students() got an unexpected keyword argument 'stu_name' Request Method: POST Request URL: http://127.0.0.1:8000/studentsenter code here Django Version: 2.2.5 Exception Type: TypeError Exception Value: students() got an unexpected keyword argument 'stu_name' Exception Location: C:\Users\GAGAN\Desktop\tarkProject\myapp\views.py in students, line 18 Python Executable: C:\Users\GAGAN\Anaconda3\envs\djangoenv\python.exe Python Version: 3.7.5 Python Path: ['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'] Server time: Wed, 1 Jan 2020 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

Tags: namereturnmodelsrequestpostlengthusersmax
1条回答
网友
1楼 · 发布于 2024-06-17 13:13:08

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

解决方案:

  1. 要保持命名约定,请将模型名students更改为Student
  2. 运行python manage.py makemgirations
  3. 运行python manage.py migrate

相关问题 更多 >