2017-05-13 127 views
0

Django 1.11更改在Django管理员组很慢

如果我在Django管理站点中单击组,我可以看到组列表。即地址是http://localhost:8000/admin/auth/group/

我监视终端的CPU使用情况。 Python现在消耗4-5%。我已经组织了4组。所以,如果我点击任何组,服务器只需计算几分钟。现在的地址就像http://localhost:8000/admin/auth/group/6/change/ 也许大约5分钟的服务器计算的东西。而且Python现在正在占用100%的CPU资源。

那么,Django管理员正在分析一些东西。

我有大约23-25模型。那么,这不是很多的模型。

每个模型有3个标准权限(添加,更改,删除)。我自己在模型的Meta类中创建了一个权限。

因此,只要“更改组”页面在我面前具有可用的权限和选定的权限,Python的CPU使用率仍然是4-5%。

您能对此发表评论吗?它可以治愈吗?

+0

这是一个难以回答的问题,因为没有人确切知道你的代码在做什么。你需要更多地缩小问题的范围。根据你的代码有很多可以继续。 –

+0

我不知道如何诊断这个问题。你能推荐我一些东西吗? – Michael

+0

我最好的测试方法是使用pycharm的调试。有时可能需要几小时才能诊断。任何问题都是由django的代码引起的。 我会在你的代码中加一个停止点,你知道在你进入组的时候会调用一个停止点,并且直到你找到一个非常重复的代码。找出代码正在做什么,并查看代码如何与它进行交互。如果你然后弄清楚,更新或回答你的问题。 不幸的是,这是我唯一真正的建议。希望我能有更多的帮助。 –

回答

0

我在settings.py中添加了一个新组,并且遇到了同样的问题Debug=True

相同的代码与Debug=False正常工作。

一些背景资料:

  • 我们使用Django 1.11
  • 我们使用自定义的用户模型从AbstractBaseUser
  • 上有管理网站注册〜30款

Django的调试继承工具栏输出:

enter image description here

0

我们使用相同的设置最大Malysh:

  • Django的1.11
  • 基于django.contrib.auth.models.AbstractUser
  • 通过AUTH_USER_MODEL可变
在设置中的自定义用户模型的自定义 User模型

我们遇到了同样的问题,我想我找到了问题,或者至少是导致延迟的模块。它与Django和/或DEBUG模式本身无关,因为我认为问题在debug_toolbar之内。

如果您停用debug_toolbar应用程序和debug_toolbar.middleware.DebugToolbarMiddleware中间件,它就像一个魅力。

我没有时间对其进行逆向工程,但是当我找到时间时我会看看它。同时,作为解决方法,如果您不需要调试工具栏,请停用调试工具栏。

对不起,这不是最终的解决方案,但我想我会分享我的发现,以防他们可以帮助某人。

干杯 多米

编辑/ UPDATE:它是与调试工具栏上的模板面板。如果您停用它,您的响应时间会更快!