2014-09-25 6 views
5

Non riesco a leggere la colonna di un'altra tabella che è unita. Si getta AttributeErrorPeewee ottenere colonna dopo join

class Component(Model): 
    id = IntegerField(primary_key=True) 
    title = CharField() 

class GroupComponentMap(Model): 
    group = ForeignKeyField(Component, related_name='group_fk') 
    service = ForeignKeyField(Component, related_name='service_fk') 

Ora la query è

comp = (Component 
     .select(Component, GroupComponent.group.alias('group_id')) 
     .join(GroupComponent, on=(Component.id == GroupComponent.group)) 
     ) 

for row in comp: 
    print row.group_id 

Ora ho un errore AttributeError: 'Component' object has no attribute 'group_id'

+0

riga ha attrs 'id' e' title', quello che fai significa per 'group_id'? – hyades

+1

nel 'select' ho aggiunto' GroupComponent.group.alias ('group_id') 'quindi voglio ottenere il valore di' group_id' – Rishabh

risposta

6

Se si desidera solo per rattoppare direttamente l'attributo group_id sul Component selezionato, chiamare .naive(). Questo indica Peewee che non si vuole ricostruire il grafico di modelli uniti - si desidera solo tutti gli attributi patchato su una singola istanza dei componenti:

for row in comp.naive(): 
    print row.group_id # This will work now.