2

我有以下模型并出现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")
4

1 回答 1

4

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

class Terms(UserMixin, BaseModel):
    term_id = CharField()
    set_id = CharField()
    term_count = IntegerField()
    term = TextField()
    definition = TextField()
于 2016-05-14T03:01:21.317 回答