Django TypeError(“'%s'是此函数的无效关键字参数”)

yiw*_*wei 5 python django

因此,我已经看到有关此错误的类似问题,它们似乎都与存在ManyToMany关系的用例有关。但是,即使我的模型没有M2M关系,我也遇到了这个问题,所以我想问一下为什么会这样。

这是我的模型:

class Course(models.Model):
    name = models.CharField(max_length=64)
    credit = models.IntegerField
    notes = models.CharField(max_length=128)
    resources = models.TextField
    description = models.TextField
    topic = models.CharField(max_length=128)
Run Code Online (Sandbox Code Playgroud)

每当我创建这个模型的一个新实例,我得到TypeErrorcreditresourcesdescription领域。

我将其实例化为:

c = Course(
    name='some name',
    credit='8',
    notes='N/A',
    resources='no resources',
    description='N/A',
    topic='some topic'
)
Run Code Online (Sandbox Code Playgroud)

但是,如果我将受影响的字段更改为models.IntegerField(max_length=8)models.TextField(max_length=8),则错误消失了。

为什么会这样?我的印象是该max_length参数是可选的TextField;我什至不知道在上下文中这意味着什么IntegerField。有人可以解释这种行为和/或我在做什么错吗?

raf*_*elc 4

您将字段定义为其类的引用,而不是这些类的实例。它应该是

class Course(models.Model):
    name = models.CharField(max_length=64)
    credit = models.IntegerField()
    notes = models.CharField(max_length=128)
    resources = models.TextField()
    description = models.TextField()
    topic = models.CharField(max_length=128)
Run Code Online (Sandbox Code Playgroud)