Peewee,Python,在列外键中获取数据

时间:2018-05-09 13:45:29

标签: python sql class foreign-keys peewee

您好我有一个数据库和2个表,

return;

水果桌上的''颜色'是一张外键,颜色表中的颜色为'color_id'。

所以,Peewee& Python我希望在水果表中获得'颜色',但我总是会收到'无'。

color: color_id | color_name | color_type
fruit: fruit_id | color | fruit_name

我试过

fruits= Fruit.select() 
for fruit in fruits:    
     c = fruit.color   
     print(c)

但在这里我不能用它来迭代。 我告诉你我的模特:

fruits = Fruit.get()

你知道如何在我的表'fruit'中获得我的专栏'color'中的值吗?感谢名单

1 个答案:

答案 0 :(得分:0)

删除“field =”参数,因为这不是必需的,只有在需要引用相关模型上的特定(非主键)字段时才应指定:

class Fruit(BaseModel):
    fruit_id = CharField()
    name = Charfield()
    color = ForeignKeyField(Color, column_name='color', null=True)

    class Meta:
        table_name = 'fruit

仅供参考,迭代水果访问颜色是O(n)查询的一个例子。你最好这样做,它加入颜色表并选择除水果列之外的颜色列:

query = Fruit.select(Fruit, Color).join(Color)
for fruit in query:
    print(fruit.name, fruit.color.color_name)