自定义Django-admin命令问题

0 投票
2 回答
567 浏览
提问于 2025-04-15 15:10

我在尝试理解自定义管理员命令是怎么工作的。我有一个项目叫“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

撰写回答