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()
我有以下模型并收到 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()