2010-01-21 64 views
1

我使用下面的代码和歌厅一些压痕问题压痕问题

from django.db import models 

class Poll(models.Model): 
    question = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 

    def __unicode__(self): 
     return self.question 

我歌厅以下错误

File "E:\Softwares\Django-1.1.1.tar\.py", line 7 
    def __unicode__(self): 
    ^
IndentationError: unexpected indent 

回答

3

最有可能你正在使用的标签的组合和缩进中的空格......改为使用所有空格/全部制表符。 (最广泛采用的样式是每个级别的缩进使用4个空格。)

要修复此问题的特定实例,请选中使def __unicode__(self):行的行以与pub_date = ...行相同的缩进开始。对于return ...行,请使用相同的缩进+四个额外空格。

+1

,并找出一个好方法是用'蟒蛇-tt'运行该脚本。 – 2010-01-21 07:11:34

+0

thnaks.I使用你的答案解决了问题 – user223541 2010-01-21 08:38:04

+0

不客气。 :-) @Ignacio:感谢您添加好的提示! – 2010-01-21 10:03:30

1

与其他人一致,你可以使用编辑器,可视化的空间来检查。例如 vim set list listchars=tab:»·,trail:·(我认为gedit也有这样的插件)。

+0

这些是一些非常酷的listchars! +1的想法。 :-) – 2010-01-21 06:51:39

0

我在这里采取一个疯狂的猜测,事实上,在你的回溯中有一个文件名*反映了我的猜测,但嘿…

由于您的标签页/空格看起来或多或少都可以(假设逐字复制/粘贴),您是否有可能将代码粘贴到交互式解释器中?

字段定义之后的换行符会使解释器认为类定义已完成,因此假定回到全局范围。那意味着def确实是错误地缩进了。

* .py是不完全的Python脚本一个伟大的文件名,顺便说一句