Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django raise TypeError(“";%s()获得意外的关键字参数';%s';”;_Django_Django Rest Framework - Fatal编程技术网

Django raise TypeError(“";%s()获得意外的关键字参数';%s';”;

Django raise TypeError(“";%s()获得意外的关键字参数';%s';”;,django,django-rest-framework,Django,Django Rest Framework,我试图覆盖Django模型的save方法并发送额外的关键字参数。尽管代码看起来很好,但我得到了这个错误 raise TypeError(“%s()获得意外的关键字参数“%s”)(cls.name,kwarg)) TypeError:Student()获得意外的关键字参数“registration\u no” 我的模型: class StudentManager(models.Manager): #check the availability of student def Chec

我试图覆盖Django模型的
save
方法并发送额外的关键字参数。尽管代码看起来很好,但我得到了这个错误

raise TypeError(“%s()获得意外的关键字参数“%s”)(cls.name,kwarg)) TypeError:Student()获得意外的关键字参数“registration\u no”

我的模型:

class StudentManager(models.Manager):
    #check the availability of student
    def CheckRegistration(self, name, registration_no):
        print('inside CHECK REGISTRATION')
        if Student.objects.filter(name=name).exists():
            students = Student.objects.filter(name=name)
            for student in students:

                student_id = student.id
                print(str(student_id))
                registrations = Registration.objects.filter(student=student_id)
                for registration in registrations:
                    print(str(registration))
                    if registration.registration_no==registration_no:
                        raise ValueError('student with same registration number already exist')
                    else:
                        print('registration possible')
                        return 1

class Student(models.Model):
    name = models.CharField(max_length=300)
    sex  = models.CharField(choices=SEX_CHOICES,max_length=255, null=True)
    Category = models.CharField(max_length=100, null=True)
    objects = StudentManager()

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        if(kwargs):
            name = kwargs.get('name')
            registration_no = kwargs.get('registration_no')

            Student.objects.CheckRegistration(name, registration_no)
        super(Student, self).save(*args, **kwargs)
错误追踪

>>>Student.objects.create(name='AA',registrtion_no='BB')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/tluanga/.local/share/virtualenvs/alpha-back-0LxWEk3n/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/tluanga/.local/share/virtualenvs/alpha-back-0LxWEk3n/lib/python3.6/site-packages/django/db/models/query.py", line 420, in create
    obj = self.model(**kwargs)
  File "/home/tluanga/.local/share/virtualenvs/alpha-back-0LxWEk3n/lib/python3.6/site-packages/django/db/models/base.py", line 501, in __init__
    raise TypeError("%s() got an unexpected keyword argument '%s'" % (cls.__name__, kwarg))
TypeError: Student() got an unexpected keyword argument 'registrtion_no'
>>Student.objects.create(name='AA',registrion\u no='BB')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/tluanga/.local/share/virtualenvs/alpha-back-0LxWEk3n/lib/python3.6/site packages/django/db/models/manager.py”,第82行,在manager\u方法中
返回getattr(self.get_queryset(),name)(*args,**kwargs)
文件“/home/tluanga/.local/share/virtualenvs/alpha-back-0LxWEk3n/lib/python3.6/site packages/django/db/models/query.py”,第420行,在create中
obj=自身模型(**kwargs)
文件“/home/tluanga/.local/share/virtualenvs/alpha-back-0LxWEk3n/lib/python3.6/site packages/django/db/models/base.py”,第501行,在__
raise TypeError(“%s()获得意外的关键字参数“%s”)(cls.\uuuuuuu name\uuuuuuuuuuu,kwarg))
TypeError:Student()获得意外的关键字参数“registrtion\u no”

似乎您在书写“注册号”而不是“注册号”时出现了打字错误,因此请使用此选项:

Student.objects.create(name='AA',registration_no='BB')
希望这有帮助


如果没有,请发布“create”函数的代码

您可以添加完整的错误回溯吗?我刚刚更新了我的帖子。请检查您不应该将参数
registrion\u no
传递到model类,因为
registrion\u no
字段没有在您的模型中定义,可以使用传递参数imean register阿努诺