Django模型调用objects.all()时提示构造函数存在意外关键字参数错误
Django模型调用objects.all()时提示构造函数存在意外关键字参数错误
嘿,我一眼就瞅出问题出在哪啦!你定义的Kunde模型里藏了个很容易忽略的小语法错误,这才导致调用objects.all()时触发了构造函数参数错误。
先看你写的模型代码:
from django.db import models class Kunde(models.Model): Kundennummer = models.IntegerField(), Vorname = models.CharField(max_length=200), Nachname = models.CharField(max_length=200)
注意到没?Kundennummer和Vorname这两个字段的定义末尾都多了个逗号!在Python里,这种写法会把这两个字段变成元组对象,而不是Django预期的字段实例。当Django尝试初始化模型类的时候,就会把这些元组当成莫名其妙的关键字参数,直接报错。
解决方法超简单,就是把多余的逗号删掉,修正后的模型代码如下:
from django.db import models class Kunde(models.Model): Kundennummer = models.IntegerField() Vorname = models.CharField(max_length=200) Nachname = models.CharField(max_length=200)
接下来按这几步操作就能恢复正常:
- 保存修正后的模型文件
- 如果之前已经生成过迁移文件,建议先删除对应app下的旧迁移(除了
__init__.py),然后重新执行迁移命令:python manage.py makemigrations python manage.py migrate - 重启Django shell,重新导入
Kunde模型,再执行Kunde.objects.all()就没问题啦~
这种小语法坑真的很容易踩,尤其是赶代码的时候,下次写模型字段记得多瞄一眼末尾有没有多余的逗号哦😉
备注:内容来源于stack exchange,提问作者flori10
相关产品推荐
相关产品推荐

