Как да пренасоча от един изглед на формуляр към друг в odoo?

Въпреки че бутонът се появява, той не ме пренасочва никъде. Искам първият бутон да се пренасочи към изгледа на формуляра sale.order (id 605), който съдържа отстъпка, а вторият бутон към изгледа на формуляра sale2.order (id 575), който не съдържа отстъпка към елементи. Трябва ли да направя нещо в кода на Python или просто да променя своя xml код?

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>

    <record id="view3_order_form" model="ir.ui.view">
        <field name="name">sale3.order.form</field>
        <field name="model">sale.order</field>
        <field name="arch" type="xml">
            <form string="Sales Order">
                <h1>Selection Panel</h1>
                    <button name="redirection1" string="Discount" type="action" class="oe_highlight"/>
                    <button name="redirection2" string="No Discount" type="action" class="oe_highlight"/>
            </form>
        </field>
    </record>

    <record id="action3_orders" model="ir.actions.act_window">
        <field name="name">Sales3 Orders</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">sale.order</field>
        <field name="view_type">form</field>
        <field name="view_mode">form</field>
    </record>

    <record id="redirection1" model="ir.actions.act_window">
        <field name="name">Redirection_to_discount</field>
        <field name="res_model">sale.order</field>
        <field name="view_type">form</field>
        <field name="view_mode">form</field>
        <field name="res_id">605</field>
        <field name="target">current</field>
    </record>

    <record id="redirection2" model="ir.actions.act_window">
        <field name="name">Redirection_to_no_discount</field>
        <field name="res_model">sale.order</field>
        <field name="view_type">form</field>
        <field name="view_mode">form</field>
        <field name="res_id">575</field>
        <field name="target">current</field>
    </record>

</data>
</openerp>

person Kiran    schedule 08.09.2015    source източник


Отговори (1)


Бутонът name за действие всъщност трябва да бъде числовият идентификатор на действието, а не името на действието. Разбира се, в действителност би било много по-добре да се използва името. За да направите това, използвайте синтаксиса printf - %(action_name)d вместо action_name. По този начин името по-късно ще бъде заменено с цифров идентификатор:

<button name="%(redirection1)d" string="Discount" type="action" class="oe_highlight"/>
<button name="%(redirection2)d" string="No Discount" type="action" class="oe_highlight"/>
person Ludwik Trammer    schedule 08.09.2015
comment
Хей, получавам тази грешка, Integrity Error. Операцията не може да бъде завършена, вероятно поради следното: - изтриване: може да се опитвате да изтриете запис, докато други записи все още го препращат - създаване/актуализация: задължително поле не е зададено правилно - person Kiran; 09.09.2015
comment
Това не изглежда свързано с този проблем. Моля, опитайте да създадете нова база данни в db мениджъра на Odoo. - person Ludwik Trammer; 09.09.2015
comment
Опитвам това в модула за продажби, създадох нов изглед на формуляр само с тези два бутона като елементи и му дадох номер с по-нисък приоритет, така че винаги този формуляр да се зарежда, но ми дава тази грешка, защото има някои задължителни (задължителни) полета в другата форма изглед като име, което не може да бъде нула. Не разбирам защо търси други форми, когато не съм го споменал тук. - person Kiran; 09.09.2015
comment
Няма значение кои полета са в изгледа. Тези задължителни полета все още се изискват в самия модел на данни, който Odoo се опитва да запази, когато щракнете върху произволен бутон във формуляр. - person Ludwik Trammer; 09.09.2015