自定义Django-admin命令问题
我在尝试理解自定义管理员命令是怎么工作的。我有一个项目叫“mailing”,里面有一个应用叫“msystem”。我在 mailing/msystem/management/commands/ 文件夹里写了一个 retrieve.py,并且在 management 和 commands 文件夹里都放了一个空的 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”时,奇怪的是我收到了一个“缩进”错误,虽然我觉得代码看起来没问题。你能给我一些建议或者指出问题所在吗?
谢谢!
2 个回答
2
如果你遇到了“缩进错误”,而且看起来所有的代码都是对齐的,这通常意味着你在代码中混用了制表符和空格。
我建议你确保你的代码只使用空格来缩进。
4
你的代码缩进需要在整个文件中保持一致,但你上面发的代码片段并没有做到这一点。
比如“help = ”这一行在“class”后面缩进了四个空格,但“x = ”这一行的缩进却比四个空格多了很多。
可能你在使用空格和制表符(Tab)时混淆了,所以在“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