peewee IntegrityError: NOT NULL constraint failed: terms.sets_id

peewee IntegrityError: NOT NULL constraint failed: terms.sets_id

我有以下模型并收到 IntegrityError: NOT NULL constraint failed: terms.sets_id 错误。我检查了其他帖子,我唯一能找到的原因是我没有传递所有参数,但我声明了五个字段,并将 5 个值传递给 concept = cls(...)。我错过了什么?

class Terms(UserMixin, BaseModel):
    term_id = CharField()
    sets_id = CharField()
    term_count = IntegerField()
    term = TextField()
    definition = TextField()

    @classmethod
    def include_term(cls, set_id, term_id, definition, rank, term, **kwards):
        try:
            cls.select().where(cls.term_id == term_id).get()
        except cls.DoesNotExist:
            print("putting term into db")
            concept = cls(
                set_id = set_id,
                term_id = term_id,
                term= term,
                definition = definition,
                rank = rank )
            concept.save()
            print(concept.term)
            print("term saved to db")
            return concept
        else:
            raise Exception("Term with that id already exists")

您只是输入了错误的 class 属性。您的字段定义使用 sets_id,而 include_term 方法使用 set_id。对您的代码进行以下代码更改应该可以正常工作。

class Terms(UserMixin, BaseModel):
    term_id = CharField()
    set_id = CharField()
    term_count = IntegerField()
    term = TextField()
    definition = TextField()