Привет, я застрял в создании виджета, который отображает пользовательское содержимое html в виде формы, я не знаю, как следовать. Вот мой кодodoo create custom backend form widget для рендеринга html view
ЯШ:
(function (instance) {
var _t = instance.web._t,
_lt = instance.web._lt;
var QWeb = instance.web.qweb;
console.log('hi..........'); // Custome message to dispaly on console
openerp.my_module = function (instance, local) {
console.log(instance);
instance.web.form.widgets.add('my_module.home', 'instance.my_module.Home');
instance.my_module.Home = instance.web.form.FormView.extend({
template: 'my_template',
init: function (view, code) {
console.log("::: INIT");
},
start: function() {
console.log("::: START");
}
});
}
})(openerp);
шаблон XML
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="my_template">
<div>
Template content
</div>
</t>
</templates>
На данный момент только показать в терминале 'hi..........'
и экземпляр объекта, но никогда не запустить виджет код. Так что мои вопросы. Как использовать его в конфигурации формы и если i'm то здесь отсутствует
<record id="view_form_my_module" model="ir.ui.view">
<field name="name">My Module</field>
<field name="model">my.module</field>
<field name="arch" type="xml">
<form>
<sheet>
**HOW TO ISE IT HERE**
</sheet>
</form>
</field>
</record>
когда я использую <виджет типа = "my_template" /> Тег odoo trwos эту ошибку 'web.assets_backend.js: 3600 Uncaught TypeError: OBJ не constructor' – efirvida
Я хотел бы быть более полезным. Я взял то, что содержится в документации, вставило его в свой ответ и внесло некоторые корректировки (в качестве примера). Похоже, что он ненавидит что-то о определении вашей функции 'start'. Если это не сработает, я дам полный рабочий пример позже. –
Попробуйте начать с модифицированной версией FormWidget с использованием ванили из документации. После того, как вы заменили свои имена аддонов и имена классов тем, что имеет смысл для вашего аддона. Затем наполняйте его содержимым. Если ваш qweb говорит '
HELLO WORLD
', и вы можете заставить его появиться на экране, тогда вы можете начать движение вперед. –