我尝试使用Eclipse/Pydev逐步完成django中表单验证的整个过程。我得到了一个完全出乎意料的结果。在
parent_form = form_class(request.POST, initial=initial)
debug_type = type(parent_form._errors)
msg = _('created successfully') # <------- Set breakpoint here
这是我在控制台里闲逛得到的。在
^{pr2}$我不明白为什么这两个值不同;第一个值是应该“正确”的值。在
在django源代码中,存在一个称为parent的东西_表格错误(请注意,错误前缺少前导下划线)这是父\u form的属性;获取该属性将运行一段代码,该代码将导致\u errors从None变为ErrorDict。但我不是要当家长_表格错误,我要的是家长表格。错误。在
可能是PyDev计算父级的吗_表格错误没有要求?如果是,为什么?为什么我不能通过在父对象的getter中设置断点来捕获这种静默计算呢_表单错误?在
当您到达一个断点,并且PyDev填充了variables视图(在这里可以看到每个变量的值),它将对作用域中的所有变量执行dir(),并对找到的每个变量执行getattr()(这对调试器的操作有点简化,但它很接近它)。。。在
所以,它不能真的猜测某个变量是否会有一些副作用。。。您可以尝试关闭variables视图来检查它是否只在变量被实际请求时才会这样做(尽管它可能会请求一些东西,即使它关闭了,也不确定)。在
相关问题 更多 >
编程相关推荐