如何在Python中获取模型中对象列表的值?

时间:2018-01-10 13:48:06

标签: python python-3.x sqlalchemy flask-sqlalchemy

我有两种模式,用户和朋友,它是一对多的关系

我试图获得像这样的值

record = User.query.filter_by(id=7).first()

这些是我的模型所具有的方法和属性:

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', 
   __eq__', '__format__', '__ge__', '__getattribute__', '__gt__',   
  '__hash__', '__init__', '__init_subclass__', 
  '__le__','__lt__','__mapper__', '__module__', '__ne__', '__new__', 
  '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', 
  '__sizeof__', '__str__', '__subclasshook__', '__table__', 
  '__tablename__', '__weakref__', '_decl_class_registry', 
  '_sa_class_manager', '_sa_instance_state','id', 'rfc', 'name', 
  'friends']

friends是我想要获取其值的数组

print('|{}|{}|{}'.format(record.user.rfc,
     record.user.name,
     record.friends
    )
)
|BDS344XX3343|Bob|[<models.Friend object at 0x7f0276752e48>,
 <models.Friend object at 0x7f0276752eb8>

获取friends

值的任何想法或建议

1 个答案:

答案 0 :(得分:2)

您似乎需要从分配给name的列表中包含的每个lastname对象中提取friendrecord.friends个属性。

这(应该)创建所有朋友的单个字符串&#39;姓名和姓氏与&号一起加入。

print('|{}|{}|{}'.format(record.user.rfc,
     record.user.name,
     '& '.join('{} {}'.format(f.name, f.lastname) for f in record.friends)
    )
)