2012-05-20 2 views
4

В OpenERP объект OSV может возвращать то, что может открыть новый вид или активировать действие. Например, sale.order имеет manual_invoice метод, который возвращает следующее:Оператор возврата OSV

return { 
     'name': _('Customer Invoices'), 
     'view_type': 'form', 
     'view_mode': 'form', 
     'view_id': [res_id], 
     'res_model': 'account.invoice', 
     'context': "{'type':'out_invoice'}", 
     'type': 'ir.actions.act_window', 
     'nodestroy': True, 
     'target': 'current', 
     'res_id': inv_ids and inv_ids[0] or False, 
    } 

и открывается вид формы счета-фактуры в том же окне.

Я видел, что 'view_id': [res_id], был изменен на 'views': [(id2, 'form')], и другие детали также были изменены, и он все еще работает.

Так что я не понимаю, как работает этот механизм. Что определяет, какие значения в return dict должны быть включены? Как я могу узнать, какие из них являются обязательными, а какие нет?

Большое спасибо!

ответ

5

Возвращенный словарь интерпретируется как действие (ir.actions.act_window), такое как те, что содержатся в представлениях XML. Документация доступна в Technical Memento и в official docs.

+0

Единственным исключением в этом случае является атрибут views, который представляет собой список с кортежами, тогда как в XML-файле вам нужно будет создать отдельные записи ir.actions.act_window.view, возможно, стоит его изменить? – Red15

+1

@ Red15 Фактически значение 'views', которое может быть возвращено в таком определении встроенного действия, не отличается от фактического поля функции' views', которое существует в модели ir.actions.act_window. Эта функция действительно полагается на дочерние записи 'ir.actions.act_window.view', которые явно указывают на используемые представления, но не только. И его значение - это один и тот же список кортежей. Одна разница, о которой я могу думать, - это наличие дополнительного ключа «res_id», который позволяет указать идентификатор определенной записи для открытия, обычно, когда единственным разрешенным видом является вид формы. Это полезно для (re) открытых мастеров. – odony

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