2014-11-18 1 views

ответ

3

Действия сервера оцениваются методом safe_eval в openerp/tools/safe_eval.py. Указание __builtins__ содержит разрешенные методы. Две вещи следует отметить:

  1. __import__ не ваш обычный import; это переопределение, которое позволяет вам импортировать только _strptime и time.
  2. globals переопределяется для возврата locals вместо этого, чтобы сохранить вещи аккуратно изолированными.

Список разрешенных методов, типов и т. Д.выглядит следующим образом:

  • __import__
  • True
  • False
  • None
  • str
  • unicode
  • globals
  • locals
  • bool
  • int
  • float
  • long
  • enumerate
  • dict
  • list
  • tuple
  • map
  • abs
  • min
  • max
  • sum
  • reduce
  • filter
  • round
  • len
  • repr
  • set
  • all
  • any
  • ord
  • chr
  • cmp
  • divmod
  • isinstance
  • range
  • xrange
  • zip
  • Exception

Насколько я знаю, это нигде не документированы.

Помимо этого, вы также имеете доступ к следующему, как отмечалось в комментариях по пустому кодексу Python при создании действия сервера:

  • self: ORM модели записи, на которых действие срабатывает
  • object: Запись, на которой запускается действие, если есть один, в противном случае None
  • pool: ORM модель пула (т.е. self.pool)
  • cr: база данных курсор
  • uid: текущий идентификатор пользователя
  • context: модуль Python time
  • workflow:: текущий контекст
  • time Workflow двигатель

И недокументированные (вы должны проверить источник от openerp/addons/base/ir/ir_actions.py):

  • datetime: Python datetime модуль
  • dateutil: Python dateutil модуль
  • user: просмотреть запись текущего пользователя (контрастируют с uid, что только его идентификатор пользователя)
  • Warning: openerp.exceptions.Warning

 Смежные вопросы

  • Нет связанных вопросов^_^