:param max_page_size:
    :param model_class:
    :param page_num:
    :param page_size:
    :param filter_dict:
    :param order_by_list:
    :param select_related_fields:
    :param q_filter: Q(uuid__contains=keyword) | Q(memo__contains=keyword)
    :param values:
    :param to_json_method:
    :return:

def model_to_page_list(model_class, page_num,
                       page_size=DEFAULT_PAGE_SIZE,
                       filter_dict=None, order_by_list=None,
                       select_related_fields=None, q_filter=None,
                       values=None, to_json_method='to_json',
                       max_page_size=MAX_PAGE_SIZE):
    """
    :param max_page_size:
    :param model_class:
    :param page_num:
    :param page_size:
    :param filter_dict:
    :param order_by_list:
    :param select_related_fields:
    :param q_filter: Q(uuid__contains=keyword) | Q(memo__contains=keyword)
    :param values:
    :param to_json_method:
    :return:
    """
    if order_by_list is None:
        order_by_list = ['-id']

    if filter_dict is None:
        filter_dict = {}

    if q_filter is not None:
        filter_list = [q_filter]
    else:
        filter_list = []

    if select_related_fields is None:
        if values is None:
            objects = model_class.objects.filter(
                *filter_list, **filter_dict).order_by(*order_by_list)
        else:
            objects = model_class.objects.filter(
                *filter_list, **filter_dict).values(*values).order_by(*order_by_list)
    else:
        if values is None:
            fields = [t.attname for t in model_class._meta.fields]
        else:
            fields = values
        fields.extend(select_related_fields)
        objects = model_class.objects.filter(
            *filter_list, **filter_dict).values(*fields).order_by(*order_by_list)

    if page_num is not None:
        if page_size > max_page_size:
            page_size = max_page_size

        paginator = Paginator(objects, page_size)
        try:
            json_list = paginator.page(page_num)
        except EmptyPage as e:
            json_list = []
    else:
        json_list = list(objects)

    if select_related_fields is not None or values is not None:
        json_list = [object_set_dict_data(model_class, t) for t in json_list]
    return [getattr(t, to_json_method)() for t in json_list]