Django admin中的更改组非常慢

时间:2017-05-13 21:06:44

标签: django

Django 1.11

如果我在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%。

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

3 个答案:

答案 0 :(得分:2)

在内置django管理应用程序中使用django调试工具栏时,会遇到此问题。更改/更新页面在本地的运行速度非常慢(有时根本无法加载),但是如果我设置DEBUG=False(因此关闭了调试工具栏),它就会按预期运行。在我的特殊情况下,我不需要管理应用程序的调试工具栏,因此仅对那些管理URL禁用了它,如下所示:

# settings.py

DEBUG = True

def show_toolbar(request):
    # disable debug toolbar for built in admin app urls only
    if request.path.startswith('/admin'):
        return False
    else:
        return True
DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': show_toolbar,
}

答案 1 :(得分:0)

Debug=True添加settings.py的新群组时,我遇到了同样的问题。

相同的代码适用于Debug=False

一些背景资料:

  • 我们使用Django 1.11
  • 我们使用继承自AbstractBaseUser
  • 的自定义用户模型
  • 管理网站上注册了约30个模型

Django调试工具栏输出:

enter image description here

答案 2 :(得分:0)

我们使用与Max Malysh相同的设置:

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

我们遇到了同样的问题,我认为我发现了这个问题,或者至少是造成延误的模块。它与Django和/或DEBUG模式本身无关,因为我认为问题在debug_toolbar内。

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

我没有时间对其进行逆向工程,但是当我找到时间时,我会看一下它。与此同时,如果您不需要,请停用调试工具栏。

很抱歉,它还不是最终解决方案,但我想我会分享我的发现,以防他们可以帮助某人。

干杯 多米

编辑/更新:它与调试工具栏的“模板”面板有关。如果您停用它,您的响应时间会快得多!