Оболочка Django manage.py Выдает ошибку, когда встречается "def" - PullRequest
0 голосов
/ 04 марта 2011

Я читаю официальный учебник django (http://docs.djangoproject.com/en/dev/intro/tutorial01/).Когда я пытаюсь запустить "python manage.py shell", ошибка Python throw:

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

1 Ответ

2 голосов
/ 04 марта 2011

У вас есть ошибка отступа Python.Я не совсем уверен, где, но документы Django показывают это: http://docs.djangoproject.com/en/dev/intro/tutorial01/

Так что следуйте за этим к букве /space.

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

Ваш точный отступ вы вставилине выкидывайте эту ошибку, но в вашем реальном коде у вас должна быть строка def __unicode__ с той же глубиной отступа, что и у других строк в вашей модели.

Убедитесь, что вы используете пробелы, а не вкладки для всех ваших отступов, поскольку иногда вкладки могут показывать уровень отступа таким же, как и у других.

...