当我做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
答案 0 :(得分:2)
我遇到了同样的问题。经过几个小时的搜索manage.py代码后,它显示这是由我的设置文件配置引起的。我使用Mezzanine作为我的CMS。当你使用它时,Mezzanine会说你可以在OPTIONAL_APPS变量下放置一些应用程序,所以我在这个变量下有我的自定义应用程序但在INSTALLED_APPS中没有。移回INSTALLED_APPS,一切都按预期开始工作。
确保您的应用程序不在INSTALLED_APPS下。 manage.py看起来与此常量完全相同。