试图了解自定义管理命令如何工作,我的项目名为“mailing”,应用程序名为“msystem”,我已将此retrieve.py写入mailing / msystem / management / commands /文件夹并且我已粘贴管理和cpmmands文件夹中的空 init .py。
from django.core.management.base import BaseCommand
from mailing.msystem.models import Alarm
class Command(BaseCommand):
help = "Displays data"
def handle(self, *args, **options):
x = Alarm.objects.all()
for i in x:
print i.name
当我尝试“python manage.py retrieve”时,我很奇怪得到句柄功能的“indention”错误但是它对我来说很好看,你能建议我做什么或者指出我的问题
由于
答案 0 :(得分:4)
您的缩进需要在整个文件中保持一致,而不是您在上面发布的代码段中。
“help =”行在“class”之后缩进了四个空格,但是“x =”行缩进了多于四个。
也许你在混合空格和制表符,因此在“x =”之前有两个标签?
您的代码应如下所示:
from django.core.management.base import BaseCommand
from mailing.msystem.models import Alarm
class Command(BaseCommand):
help = "Displays data"
def handle(self, *args, **options):
x = Alarm.objects.all()
for i in x:
print i.name
答案 1 :(得分:2)
如果您收到“缩进错误”并且所有内容看起来都是对齐的,这通常表明您正在混合制表符和空格。
我建议您确保模块只使用空格。