Django调试在引擎盖下做什么?

2024-09-27 20:15:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个bug,当DEBUG为True时不会发生,无论是在Apache的生产环境中还是在Django-dev服务器的本地环境中。这让我不禁要问:Django DEBUG在幕后的魔力是什么?{a1}没有太多关于这方面的信息

现在来看bug。我知道下面的描述对任何人来说都是赤裸裸的,无法复制,但我有IP需要保护,而且我对复制错误也没有多大希望

假设我有一个Django项目,其中至少有两个应用程序,一个是模型a的应用程序alice,另一个是模型B的应用程序bob

我正在使用django额外视图中的UpdateWithInlinesView。当此视图从模型a的实例构造表单集时,会发生错误。在关于服务器错误的电子邮件中,我收到如下消息:

位于/some/url的字段错误/ 无法将关键字“field\u of_A”解析为字段。可供选择的字段有:字段_of_B_1、字段_of_B_2、字段_of_B_3

我以前也遇到过这种错误。通常情况下,当你告诉表单“我在使用模型C”和“我在使用一个名为debbie的字段”时,模型C没有一个名为debbie的字段。这一部分是有道理的。但是这个错误使它看起来像是在检查模型B的字段名,而实际上它应该检查模型A。我一直在绞尽脑汁试图弄明白,在这个世界上,从一个模型构造表单如何会参考不同应用程序中的不同模型

此外,这种情况在大多数情况下都不会发生,它会在服务器重新启动时消失,在DEBUG=True时也不会发生。所以我想知道这是否是一个应用程序注册表问题,某种使注册表失控的竞争条件。如果是这样的话,那么我可能会通过更好地理解应用程序注册表或者理解调试所做的事情而有所收获


Tags: ofdjangodebug模型服务器视图true应用程序

热门问题