Odoo 8商店=假不工作

时间:2016-07-26 19:16:22

标签: python xml odoo-8

我正在创建一个简单的表单,您必须输入密码才能执行操作,但我无法弄清楚如何不在数据库中存储密码。当我把 store = False 时,我的模块无法编译。此外,我想知道在用户编写密码时是否有隐藏密码的方法。

最好不要在数据库中创建任何表,但我需要创建一个模型,因为我有一个调用方法的按钮。我不知道是否有办法避免创建表格。

siteweb_migration_wizard.py

# -*- coding: utf-8 -*-

from openerp import models, fields, api, tools

class SitewebMigrationWizard(models.TransientModel):
    _name = 'siteweb.migration'

    password = fields.Char(string="Mot de passe", store=False)


    @api.multi
    def migration(self):
        password = self.password

        print(password)

siteweb_migration_wizard.xml

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

        <record model="ir.ui.view" id="siteweb_migration_wizard_form">
            <field name="name">siteweb.migration.form</field>
            <field name="model">siteweb.migration</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="Migrer" version="8.0">
                    <p>Voulez-vous vraiment migrer vers la BD du site?</p>
                    <group>
                        <field name="password"/>
                    </group>
                    <button string="Confirmer" type="object" name="migration"/>
                    <button string="Annuler" class="oe_highlight" special="cancel"/>
                </form>
            </field>
        </record>

        <record id="action_siteweb_migration" model="ir.actions.act_window">
            <field name="name">Migration du site</field>
            <field name="res_model">siteweb.migration</field>
            <field name="view_type">form</field>
            <field name="view_id" ref="siteweb_migration_wizard_form"/>
            <field name="multi">True</field>
            <field name="target">new</field>
        </record>

        <menuitem action="action_siteweb_migration" id="menu_siteweb_migration" name="Migration du site"
                  parent="siteweb_createch.menu_siteweb"/>

    </data>
</openerp>

2 个答案:

答案 0 :(得分:1)

要记住一些要点

  • “store”是计算字段的参数。它定义了它是否应该 每次打开记录或计算记录时计算值 只有当它被编辑时。
  • 点击确认按钮后,它会保存当前数据。我建议您在迁移方法中将密码设置为False
@api.multi
def migration(self):
    password = self.password
    print(password)
    self.password = False
  • 即使存储它也不会存储很长时间。清理瞬态模型的调度程序将在一段时间后删除记录

答案 1 :(得分:0)

您可以简单地使用 PASSWORD ,因为您已将其声明为self.password的var名称。 SO:密码=错误