如何使用 django AppConfig.ready()

Pri*_*ond 4 python django django-models

我似乎无法让 AppConfig 下的就绪功能正常工作。

这是我的 apps.py 代码:

from django.apps import AppConfig

from django.contrib.auth.models import User
from django.db.models.signals import post_save, post_delete
from django.db.models import Max, Count
from .models import Player, PlayerStats, TotalLevels

class BloxorsConfig(AppConfig):
    name = 'bloxors'

    def ready(self):
        MaxCurrentLevel = PlayerStats.objects.aggregate(max_levels=Max('level_no'))['max_levels']
        PlayerCount = Player.objects.aggregate(count_players=Count('player_name', distinct=True))['count_players']
        print(MaxCurrentLevel, PlayerCount)
Run Code Online (Sandbox Code Playgroud)

我在文档中读到,ready() 每次都会在开始时被调用manage.py runserver,但为什么什么也没有发生。理想情况下,我期望它打印两个值MaxCurrentLevel, PlayerCount

有人可以指出我做错了什么并帮助解决这个问题吗?

一如既往,我非常感谢您的回答!

Pri*_*ond 6

好吧,这首先对我来说有点愚蠢,但我找到了答案,对于其他想要它的人来说,它就在这里!

在 INSTALLED_APPS 下:我已将应用程序安装为: 'bloxors'

但显然在文档中(经过大量挖掘后),您实际上需要将其指定为:

'bloxors.apps.BloxorsConfig'

给出的原因是因为 django 没有设置默认的 AppConfig,这取决于用户来执行此操作,这是我不知道的,所以就在这里!