0
点赞
收藏
分享

微信扫一扫

Python DTCloud API 第一节

上古神龙 2022-04-23 阅读 52
python
业务关接口名称	接口功能
/api/v1/create/0	创建
/api/v1/unlink/0	删除
/api/v1/write/0	修改
/api/v1/read/0	读取
/api/v1/search_count/0	总数
/api/v1/page/0	分页
登录相关接口名称	接口功能
/api/v1/signup/0	注册
/api/v1/login/0	登陆  参数:'type': '0',
/api/v1/login/0	发送验证码 参数:'type': '2'
自定义接口名称	接口功能
/api/v1/getattr/0	函数接口:可根据需求定制
/api/v1/public_getattr/0	公开的函数接口

查询并分页

# -*- coding: utf-8 -*-
from odoo import api, fields, models, tools, SUPERUSER_ID, _
from datetime import datetime, timedelta
from odoo import api, fields, models, _
from odoo.exceptions import UserError, ValidationError
from odoo.tools.misc import formatLang
from odoo.osv import expression
from odoo.tools import float_is_zero, float_compare
import odoo
import os
import ast

class res_users(models.Model):
    _inherit = "job.user"

    def _api_page(self, kw):
        search = kw.get('search', '')# 查询的关键字
        page = kw.get('page', 0)     # 查第几页
        limit = kw.get('limit', 10)  # 每页显示数量

        domain = self._get_search_domain(search, kw)
        obj_count = self.sudo().search_count(domain)

        obj = self.sudo().search(domain, limit=int(limit), offset=int(page) * int(limit),
order=self._get_search_order(kw))
        data = {
            'search': search,
            'data': self._get_list(obj),
            'search_count': obj_count,
            "errcode": 0,
            "errmsg": "ok",
            "message": '返回成功',
        }
        return data

    def _get_search_order(self, post):
        order = post.get('order') or 'create_date desc'
        return '%s, id desc' % order

    def _get_search_domain(self, search, kw):
        """
        查询条件
        :param search:
        :param kw:
        :return:
        """
        domain = ast.literal_eval(kw['domain']) if kw['domain'] is not None else kw['domain']
        domains = []
        domains.append(domain)
        if search:
        for srch in search.split(" "):
                subdomains = [
                    [('name', 'ilike', srch)],
                    [('code', 'ilike', srch)]
                ]
                domains.append(expression.OR(subdomains))
        return expression.AND(domains)

    def _get_list(self, obj):
        list = []
        for line in obj:
            j = {
                "id": line.id,
                "name": line.name,
                "mobile": line.mobile,
            }
            list.append(j)
        return list

举报

相关推荐

0 条评论