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

时间:2012-09-13 11:32:13

标签: python django command

当我做python manage.py help

[myapp]
        update_overall_score 
        update_periodic_score

列出了我的自定义命令,我可以通过update_periodic_score运行python 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

1 个答案:

答案 0 :(得分:2)

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

确保您的应用程序不在INSTALLED_APPS下。 manage.py看起来与此常量完全相同。