57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import print_function, unicode_literals, absolute_import, division
|
|
|
|
|
|
def list_with_relation_one(lst, field, model):
|
|
"""
|
|
获取一对一 关联对象
|
|
:param lst: list
|
|
:param field: 字段名称
|
|
:param model: 模型对象
|
|
:return: list
|
|
"""
|
|
|
|
field_id = field + '_id'
|
|
field_ids = set(map(lambda item: item[field_id], lst))
|
|
|
|
field_models = model.select().where(
|
|
model.id.in_(field_ids)
|
|
)
|
|
|
|
field_map = {}
|
|
for field_model in field_models:
|
|
field_map[field_model.id] = field_model
|
|
|
|
for row in lst:
|
|
row[field] = field_map.get(row[field_id])
|
|
|
|
return lst
|
|
|
|
|
|
def list_with_relation_many(lst, field, model, limit=None):
|
|
"""待完成"""
|
|
pass
|
|
|
|
# field_id = field + '_id'
|
|
# field_ids = set(map(lambda item: item['id'], lst))
|
|
#
|
|
# query = model.select().where(
|
|
# model.id.in_(field_ids)
|
|
# )
|
|
#
|
|
# if limit:
|
|
# query = query.limit(limit)
|
|
#
|
|
# field_models = query
|
|
#
|
|
# field_map = {}
|
|
# for field_model in field_models:
|
|
# field_model_list = field_map.get(field_model.id, [])
|
|
#
|
|
# field_map[field_model.id] = field_model_list
|
|
#
|
|
# for row in lst:
|
|
# row[field] = field_map.get(row[field_id])
|
|
#
|
|
# return lst
|