代码之家  ›  专栏  ›  技术社区  ›  Arkaitz Jimenez

如何验证Django窗体构造函数MyForm(Instance=MyInstance)中的“Instance”

  •  0
  • Arkaitz Jimenez  · 技术社区  · 16 年前

    我的数据存储格式与显示格式不同。
    我已经在表单的clean_weight()方法中完成了表单到数据库的转换,这使我能够在保存数据之前访问正确格式的数据。

    现在,我假装在显示表单之前操纵实例权重,但在表单代码中找不到一个好的地方来执行此操作。

    我知道有两种选择:

    • 创建构造函数并在那里处理转换。我觉得这不太好,因为一旦定义了构造函数,它就适用于所有可能的构造函数调用(不仅适用于实例=1),而且只适用于表单的1或2个字段,我更喜欢另一个解决方案。
    • 不在表单代码中执行,将它放在我使用的每个视图中,看起来不舒服,因为我需要在多个地方执行,我需要从表单中移除干净的权重以保持一致,所以我需要在我使用表单的每个视图中同时执行这两种操作。

    在这两个方面,看起来更好的是建设者,但对我来说很臭。
    有什么暗示吗?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Dmitry Shevchenko    16 年前

    自定义表单域是您所需要的-简单、干净、可在任何表单上重用。可能甚至自定义模型字段,但这取决于您。