django中的冗余处理形式是清洁方法和视图

时间:2017-03-23 03:15:47

标签: django django-forms

我正在处理接受和处理XML文件的Django表单(具体来说,视图需要解析从iTunes导出的XML文件中的band列表)。我计划验证XML解析器在表单clean()方法中运行时没有异常。但是,我希望能够在我的视图中访问已解析的波段输出列表,而无需重新运行XML解析器。 (对于大文件,XML解析器可以花费不可忽略的时间,因此我不想多次运行它。)

有什么方法可以让这种情况发生而无需运行解析器两次?也就是说,我可以从视图中访问形式为clean()的命名空间中的任意变量吗?

(我真的想在视图中提出ValidationError,但我知道这是不可能的。)

谢谢!

1 个答案:

答案 0 :(得分:0)

Django表单的clean()方法可以像任何常规Python类一样使用。因此,如果在clean()方法中执行计算上重要的处理,并且在视图中需要该处理的结果,则可以将结果数据作为成员变量附加到表单类。