3

当我做python manage.py help

[myapp]
        update_overall_score 
        update_periodic_score

列出了我的自定义命令,我可以在其中运行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
4

1 回答 1

5

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

确保您的应用程序位于 INSTALLED_APPS 下。manage.py 看起来就是这个常量。

于 2013-04-04T09:51:36.213 回答