【问题标题】:Django manage.py shell Throws error when meet "def"Django manage.py shell 遇到“def”时抛出错误
【发布时间】:2011-03-03 21:37:39
【问题描述】:

我正在阅读 django 官方教程(http://docs.djangoproject.com/en/dev/intro/tutorial01/)。当我尝试运行“python manage.py shell”时,python 抛出错误:

File "D:\DjangoProjects\mysite\polls\models.py", line 8
   def __unicode__(self):
   ^
IndentationError: unexpected indent

请帮忙!如何解决这个问题?

models.py:

import datetime
from django.db import models

# Create your models here.
class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
def __unicode__(self):
    return self.question

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()   
def __unicode__(self):
    return self.choice

【问题讨论】:

  • 这显然不是您正在运行的代码,因为您指出的行在粘贴的代码中根本没有缩进。请更新问题,使代码看起来与您的编辑器中的完全相同。

标签: django shell manage.py


【解决方案1】:

你有一个 python 缩进错误。我不确定在哪里,但 django 文档显示:http://docs.djangoproject.com/en/dev/intro/tutorial01/

所以跟随它到字母/空格。

class Poll(models.Model):
    # ...
    def __unicode__(self):  
        return self.question

您粘贴的确切缩进不会引发该错误,但在您的实际代码中,def __unicode__ 行的缩进深度必须与模型中的其他行完全相同。

确保所有缩进都使用空格而不是制表符,因为制表符有时会使缩进级别看起来与其他缩进级别相同。

【讨论】:

  • 谢谢,我真的在使用标签。
猜你喜欢
  • 2014-09-19
  • 2013-08-23
  • 1970-01-01
  • 2012-08-28
  • 2021-01-21
  • 2017-02-05
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多