![](/img/trans.png)
[英]how to get database value from orm and field name get from string in odoo 8
[英]How to get distinct value from table using ORM methods in odoo
在Odoo中,我有一个模型“电子邮件规则” ,其中有一列number_of_days 。
现在,我需要做的是从该模型中查找不同的number_of_days ,而无需进行火灾查询,这意味着我想使用ORM方法而不是查询。
我怎样才能做到这一点 ? 我对此不太了解。
Odoo search_read和搜索方法从表中获取数据。
def search_read(self, cr, uid, domain=None, fields=None, offset=0, limit=None, order=None, context=None):
"""
Performs a ``search()`` followed by a ``read()``.
:param cr: database cursor
:param user: current user id
:param domain: Search domain, see ``args`` parameter in ``search()``. Defaults to an empty domain that will match all records.
:param fields: List of fields to read, see ``fields`` parameter in ``read()``. Defaults to all fields.
:param offset: Number of records to skip, see ``offset`` parameter in ``search()``. Defaults to 0.
:param limit: Maximum number of records to return, see ``limit`` parameter in ``search()``. Defaults to no limit.
:param order: Columns to sort result, see ``order`` parameter in ``search()``. Defaults to no sort.
:param context: context arguments.
:return: List of dictionaries containing the asked fields.
:rtype: List of dictionaries.
"""
@api.returns('self')
def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
""" search(args[, offset=0][, limit=None][, order=None][, count=False])
Searches for records based on the ``args``
:ref:`search domain <reference/orm/domains>`.
:param args: :ref:`A search domain <reference/orm/domains>`. Use an empty
list to match all records.
:param int offset: number of results to ignore (default: none)
:param int limit: maximum number of records to return (default: all)
:param str order: sort string
:param bool count: if True, only counts and returns the number of matching records (default: False)
:returns: at most ``limit`` records matching the search criteria
:raise AccessError: * if user tries to bypass access rules for read on the requested object.
"""
现在,我需要做的是先找出所有数据,然后通过pythonic方式使其具有唯一性,这是令人讨厌的。
因此,如果有人知道这一点的明智解决方案,那就太好了。
您可以使用distinct_field_get()
。
例如,如果您想获得不同的合作伙伴名称,则可以这样进行:
partners = self.env['res.partner']
values = partners.distinct_field_get(field='name', value='')
return set(values)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.