generic.utils 源代码

from django.db.models import QuerySet

from generic.models import User


__all__ = [
    'to_search_indices',
]


[文档] def to_search_indices( users: QuerySet[User], active: bool | None = True, ) -> list[dict[str, str]]: ''' 把用户对象转化为搜索索引 Args: - users: 用户对象列表 - active: 返回的用户是否为激活用户,为`None`时不筛选,默认为`True` Returns: - search_indices: 搜索索引列表,每个索引包含以下字段 - id: 用户id(学号) - text: 用户名称 - pinyin: 用户名称拼音 - acronym: 用户名称缩写 ''' if active is not None: users = users.filter(active=active) index_values = users.values_list('username', 'name', 'pinyin', 'acronym') search_indices = [] for user in index_values: uid, name, pinyin, acronym = user search_indices.append({ 'id': uid, 'text': name + uid[:2], 'pinyin': pinyin, 'acronym': acronym, }) return search_indices