Raf*_*afa 6 python flask peewee
我有以下代码,用于查询我的 peewee 数据库。我在具有 term.sets_term_id 的行上的 for 循环中遇到错误。这是错误 TermsDoesNotExist: Instance matching query does not exist: If I do vars(term) then sets_terms_id 是一个选项。为什么我会收到该错误以及如何修复它?
def get_api_response(id):
response = {}
print("id is " + str(id))
try:
sets = models.Sets.select().where(models.Sets.user_id == id)
except models.DoesNotExist:
return json.loads({'error' : 'that set does not exist'})
else:
print("it was successful")
for term in sets:
print(term.sets_term_id)
Run Code Online (Sandbox Code Playgroud)
这是我的集合和术语模型
class Terms(UserMixin, BaseModel):
term_id = CharField()
sets_id = CharField()
rank = 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(
sets_id = set_id,
term_id = term_id,
definition = definition,
rank = rank,
term= term)
concept.save()
print(concept.term)
print("term saved to db")
return concept
else:
raise Exception("Term with that id already exists")
class Sets(UserMixin, BaseModel):
user_id = CharField()
name_set = CharField()
#created_date = DateField()
#modified_date = DateField()
#published_date = DateField()
sets_term_id = ForeignKeyField(Terms, to_field="sets_id")
@classmethod
def include_set(cls, user_id, name_set, sets_term_id, **kwards):
try:
cls.select().where(
(cls.name_set == name_set) | (cls.sets_term_id == sets_term_id)
).get()
except cls.DoesNotExist:
print("putting set into db")
quizlet_set = cls(
user_id = user_id,
name_set = name_set,
sets_term_id = sets_term_id)
print(quizlet_set.name_set)
quizlet_set.save()
print("set saved in db")
return quizlet_set
else:
raise Exception("Set with that name already exists")
Run Code Online (Sandbox Code Playgroud)
问题出在您的 except 块中。
except models.DoesNotExist:
return json.loads({'error' : 'that set does not exist'})
Run Code Online (Sandbox Code Playgroud)
应该:
except models.Sets.DoesNotExist:
return json.loads({'error' : 'that set does not exist'})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5138 次 |
最近记录: |