2009-10-19 142 views
0

试图了解自定义管理命令是如何工作的,我将我的项目命名为“mailing”,并在里面命名为“msystem”,我将这个retrieve.py写到mailing/msystem/management/commands /文件夹,并且我已将空init .py都粘贴到管理和cpmmands文件夹。自定义Django-admin命令问题

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 

我古怪越来越为手柄功能“缩进”的错误,当我尝试“蟒蛇manage.py检索”但它看起来好像没什么问题,你可以建议我做什么或指向我的问题

谢谢

回答

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 
2

如果你得到一个“缩进错误”,并且看起来一切都一致,这通常表明你在混合标签和空格。

我建议确保你的模块只使用空格。

+0

+1打我吧:) – 2009-10-19 07:08:30

+0

感谢您的+1,但随着速度的最佳答案冗长;) – SmileyChris 2009-10-20 01:39:56