Django:找不到manage.py自定义命令

Bab*_*abu 3 python django command

当我做python manage.py help

[myapp]
        update_overall_score 
        update_periodic_score
Run Code Online (Sandbox Code Playgroud)

列出了我的自定义命令,我可以在其中运行update_periodic_scorepython manage.py update_periodic_score但是当我尝试另一个命令时,我收到错误Unknown command: 'update_overall_score'

会有什么问题呢?这两个文件都放置在所有目录中的目录中myapp/management/commands__init__.py

这是我的 update_overall_score.py,

from django.core.management.base import BaseCommand, CommandError
from myapp.models import Users

class Command(BaseCommand):
    """
    Updates the overall_score field of every user.
    """
    def handle(self, *args, **options):
        all_users = Users.objects.all()
        try:
            for user in all_users:
                likes = user.likes_received.count()
                stars = user.stars_received.count()
                user.overall_score = likes + stars
                user.save()
        except Exception, e:
            print e
            return
        print "Updated Overall Score."
        return
Run Code Online (Sandbox Code Playgroud)

Sim*_*nas 6

我有同样的问题。经过几个小时搜索manage.py代码后发现这是由我的设置文件配置引起的。我使用 Mezzanine 作为我的 CMS。当您使用它时,Mezzanine 表示您可以将一些应用程序放在 OPTIONAL_APPS 变量下,因此我将自定义应用程序放在该变量下,但不在 INSTALLED_APPS 中。移回 INSTALLED_APPS,一切都开始按预期工作。

确保您的应用程序位于 INSTALLED_APPS 下。Manage.py 看起来完全符合这个常量。