2015-04-03 2 views

ответ

3

Вы можете сделать это легко с money виджет. Мы используем это целую вечность.

В питона файле:

class your_class(orm.Model): 
    _inherit = 'your.class' 

    def _get_your_currency_id(self, cr, uid, ids, name, args, context=None): 
     res = {} 
     for voucher in self.browse(cr, uid, ids, context=context): 
      your_currency_id = self.pool.get('res.currency').search(cr, uid, [('name', '=', 'EUR')], context=context) 
      if your_currency_id: 
       res[voucher.id] = your_currency_id[0] 
     return res 

    _columns = { 
       'your_amount_field' :fields.float('Your Amount Field'), 
       'your_currency_id': fields.function(_get_your_currency_id, type='many2one', relation='res.currency', string='Currency', readonly=True, required=True), 
       } 

В XML файле:

<field name="your_currency_id" invisible="1" /> 
<field name="your_amount_field" class="oe_inline" string="Test Amount" widget="monetary" options="{'currency_field': 'your_currency_id'}" /> 

Технически, что он делает это, у нас уже есть куча всех возможно доступных валютах стран в таблице называется res_currency ,

Мы только ищем евро и даем знать денежный виджет, чтобы использовать конкретную валюту евро, используя словарь опций. Остальное позаботится сам виджет.

0

Вы просто только добавить виджет в поле суммы, в которой вы хотите символ валюты,

<field name="your_field" widget="monetary" options="{'currency_field': 'currency_field_of_you_model'}" 

Здесь в опции, которые необходимо предоставить поле валюты доступные в вашей модели, поэтому он будет отображать символ валюты который принадлежит, в частности, к этой записи, или вы можете поместить статический идентификатор валюты там, тогда он будет показывать общий символ в каждом случае.

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