(Python)Peewee - ForeignKey关系不存在

时间:2017-10-25 12:21:57

标签: python sqlite peewee

我正在使用peewee和python,并且无法使用外键访问父表的属性

我有两个表Jobs和Tiles,具有以下架构

M

平铺表包含一个job_id作为Job表的外键。

几件瓷砖可以属于同一份工作。

为了插入,创建了一个作业,然后将tile job_id字段设置为job.id

  class Job(BaseModel):
    id = PrimaryKeyField()
    block_id = IntegerField()
    min_lat = DoubleField()
    min_lng = DoubleField()
    max_lat = DoubleField()
    max_lng = DoubleField()
    city    = TextField()
    status  = IntegerField()
    #0 : not started
    #1 : ongoing
    #2 : download complete
    #3 : upload complete
    date_created  = DateTimeField()
    date_modified = DateTimeField()
    class Meta:
        order_by = ('id',)

class Tile(BaseModel):
    id = PrimaryKeyField()
    job = ForeignKeyField(Job)
    lat = DoubleField()
    lng = DoubleField()
    is_pending = BooleanField(default=True)
    filename = CharField(default='')
    date_created  = DateTimeField()
    date_modified = DateTimeField()
    class Meta:
        order_by = ('id',)

我正在捕捉所有异常,此时不会抛出任何错误。

稍后我尝试使用Tile对象访问Job的city属性

.... tile['job'] = job tile['lat'] = item.lat tile['lng'] = item.long

和peewee / sqlite throw

  

提升self.rel_model.DoesNotExist

我刚刚开始使用peewee,但已经完成了文档和示例,似乎无法弄清楚我做错了什么。

任何指针?

1 个答案:

答案 0 :(得分:0)

道歉。我想通了。 我正在使用Select(id)并且只返回我试图提取的行的id字段。一旦我将其更改为Select(),我的代码就可以工作。

相关问题