mysql - Peewee 模型中的类是否需要特定的排序?
问题描述
我目前正在尝试在 Peewee 中为应用程序创建一个 ORM 模型。但是,在查询特定模型时,我似乎遇到了问题。经过一番调试,我发现它是低于特定型号的任何东西,它都失败了。
我已经移动了模型(给定的 ForeignKeys 仍在检查中),并且出于某种奇怪的原因,它只是特定类(用户)之下的内容。
def get_user(user_id):
user = User.select().where(User.id==user_id).get()
return user
class BaseModel(pw.Model):
"""A base model that will use our MySQL database"""
class Meta:
database = db
class User(BaseModel):
id = pw.AutoField()
steam_id = pw.CharField(max_length=40, unique=True)
name = pw.CharField(max_length=40)
admin = pw.BooleanField(default=False)
super_admin = pw.BooleanField()
#...
我希望能够像其他所有模型一样查询季节。但是,这是我遇到的 peewee 错误,当我尝试查询 1(即User.select().where(User.id==1).get()
或get_user(1)
)的 User.id 时,我得到一个返回的错误,该值甚至没有被输入。
UserDoesNotExist: <Model: User> instance matching query does not exist:
SQL: SELECT `t1`.`id`, `t1`.`steam_id`, `t1`.`name`, `t1`.`admin`, `t1`.`super_admin` FROM `user` AS `t1` WHERE %s LIMIT %s OFFSET %s
Params: [False, 1, 0]
有没有人知道我为什么会收到这个错误?
解决方案
阅读错误信息。它告诉您具有给定 ID 的用户不存在。
.get()
如果调用不匹配任何行,Peewee 会引发异常。如果您想要“如果找不到则获取或无”,您可以做几件事。使用 try / except 包装对 .get() 的调用,或使用 get_or_none()。
http://docs.peewee-orm.com/en/latest/peewee/api.html#Model.get_or_none
推荐阅读
- json - whmcs api数据保存到数据库时重复
- javascript - 按钮悬停时淡入淡出背景图像
- java - 如何在 maven-surefire-plugin 中设置并行测试
- linux - 简单重启后不应用 ulimit -n
- javascript - 有没有办法用相同的选项验证 html 中的 2 个选择标签?使用 javascript
- jquery - How to use if condition in string concatenation
- mysql - 来自查询的响应无法映射到 pojo 类 spring boot
- python - 使用 python 生成器处理 url 分页
- python - 如何使用scrapy在展开更多按钮中提取文本?
- angular - Angular Rxjs:使用管道运算符的语法错误