我正在使用peewee
查询数据库,并且正在使用.dicts()
返回查询,但是对于ForeignKeyFields我不知道如何在结果字典中包含外键。
代码胜于雄辩:
from peewee import Model
class Foo:
name = SomeField(unique=True)
class Bar:
param_one = SomeField()
param_two = SomeField()
param_xyz = SomeField()
a_foo = ForeignKeyField(Foo)
query = Bar.select().join(Foo).dicts()
for i in query:
print(i['a_foo'].name)
>> AttributeError
query = Bar.select(Bar.param_one, Foo.name).join(Foo).dicts()
for i in query:
print(i)
>>> {'param_one': x, 'name': y}
我想知道是否有一种方法可以执行类似于第二个查询的操作,而不必在Bar
中键入所有列名。
即,输出包含Bar
中所有列和Foo
中连接列的字典。
答案 0 :(得分:2)
您可以使用快捷方式从模型中选择所有列:
query = Bar.select(Bar, Foo).join(Foo).dicts()
使用字典时,Bar和Foo中的所有字段都出现在行字典中。如果Foo的字段与Bar中的字段具有相同的名称,则Foo中的字段将不包括在内,因为它将覆盖Bar中的字段。