【问题标题】:Tryton invalid XML for view / Expecting property nameTryton 视图的 XML 无效/期望属性名称
【发布时间】:2018-02-13 23:54:37
【问题描述】:

使用管理员用户在 MacOS 上运行 Tryton 4.6.2。

来自 trytond/modules/quotation/view/quotation_form.xml (模块不在基础 Tryton 中,专门为此应用程序编写。)在 3.4 中工作,在 4.6 中失败。

XML 的相关部分是:

<group id="deck_group" string="Deck" colspan="6" states = "{'invisible', Not(Bool(Eval('deck_quote')))}">

我得到: 视图“quotation.quotation”的 XML 无效。

预期属性名称:第 1 行第 2 列(字符 1):

【问题讨论】:

    标签: xml tryton


    【解决方案1】:

    Tryton 视图定义可能会在系列之间发生变化。您已经在migration topic of the discuss server 上解释了所有更改。

    不再可能在视图上定义 PYSON 语句 必须使用模型中的view_attributes 函数将 pyson 语句添加到视图中。您在the following commit 中有一个所需更改的示例。 3.4 to 3.6 migration topic. 上已对此进行了解释

    您的视图以前的新版本代码将如下所示:

    &lt;group id="deck_group" string="Deck" colspan="6"&gt;

    您应该在模型的 python 文件中添加:

    @classmethod
    def view_attributes(cls):
        return [('/xpath/to/group'), 'invisible', Not(Bool(Eval('deck_quote'))]
    

    希望对你有帮助。

    【讨论】:

    • 4.6 的 Tryton 文档仍然引用 states:将使用当前记录的值评估的 PYSON 语句字符串。它必须返回一个字典,其中键可以是: 不可见:如果为 true,则小部件将被隐藏。 required:如果为真,该字段将是必需的。 readonly:如果为 true,则该字段将是只读的。 icon:仅对按钮,它必须返回要使用的图标名称或False。 pre_validate:仅适用于按钮,。 . .. 并且在组中,它具有:状态:参见 common-attributes-states。 恕我直言,应该更新文档并显示示例。
    • 是的,但是 PYSON 它是一个不能在 XML 上编写的 python 表达式。您必须编写它的文本表示形式,或者使用 view_attributes 用 python 对象定义它,然后让 trytond 将其转换为文本表示形式。我会推荐后者。
    • 我看不到从 3.4 到 3.6 的迁移计划的提交如何解释 xml 文件中 .py 文件中 pyson 语句的用法。引用的示例仅向 xml 文件添加了一个 pyson 属性,这不起作用(对我来说)。您能否提供 V3.6 之前在 group 元素的 pyson 语句中使用带有状态的组的代码和 xml 示例,以便可以使该组不可见,以及 V3.6 和在 .py 文件中应用“不可见”之后皮森声明。多次尝试后,我仍然无法使其正常工作。
    • 所需的更改显示在我之前放置的示例提交中。只需查看python文件:hg.tryton.org/modules/account/rev/d60176cc48a2#l4.15和视图定义文件hg.tryton.org/modules/account/rev/d60176cc48a2#l9.7
    • 向组中的每个字段添加 pyson 语句对我来说没有意义,无论是在 .py 文件还是 .xml 文件中完成。
    猜你喜欢
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2016-07-07
    • 2017-09-22
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    相关资源
    最近更新 更多