2014-09-25 2 views
5

Я не могу прочитать столбец другой таблицы, которая соединена. Он бросает AttributeErrorPeewee получение колонки после присоединения

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') 

Теперь запрос

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

for row in comp: 
    print row.group_id 

Теперь я получаю ошибку AttributeError: 'Component' object has no attribute 'group_id'

+0

строка имеет AttrS 'id' и' title', что вы означает 'group_id'? – hyades

+1

в 'select' я добавил' GroupComponent.group.alias ('group_id') 'поэтому я хочу получить значение' group_id' – Rishabh

ответ

6

Если вы просто хотите, чтобы непосредственно латать атрибут group_id на выбранный Component, вызовите .naive(). Это указывает Peewee, что вы не хотите, чтобы восстановить график соединяемых моделей - вы просто хотите все атрибуты заплата на один экземпляр компонента:

for row in comp.naive(): 
    print row.group_id # This will work now. 
Смежные вопросы