Найти - Пользователи
Полная версия: indentationError: unexpected indent
Начало » Python для новичков » indentationError: unexpected indent
1
avekir
Привет всем!

Вступление:
Прошу не нервничать относительно вопросов потому, что я с Питоном работаю аж второй день и ранее не сталкивался с питоноподобной технологией программирования.

Основная часть:

Использую django

Выполняю пошаговую инструкцию http://docs.djangoproject.com/en/dev/intro/tutorial01/

Моя стукртура папок:
1) -mysite (проект)
– *** стандартные конфигы проекта
— polls (насколько я понимаю это application или по сути мой сайт)
—-*** стандартные конфиги аппликейшна

Проблема:

Файл C:\Python25\projects\first\mysite\polls\models.py

************************************
import datetime
from django.db import models

class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self): ( это тоже пробовал => __unicode__(self): )
return self.question
def was_published_today(self):
return self.pub_date.date() == datetime.date.today()




class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()
def __str__(self): ( это тоже пробовал => __unicode__(self): )
return self.choice
************************************

Выполняю такую комманду:

>>> python manage.py shell

Результат:

IndentationError: unexpected indent




От себя:
Насколько я понял, вся проблема вот в этой штуковене потому, что, когда ее нету, то все ок

def __str__(self): ( это тоже пробовал => __unicode__(self): )
return self.choice

def __str__(self): ( это тоже пробовал => __unicode__(self): )
return self.question



Заключение:

Спасибо всем за помощь !
PooH
avekir
>>> python manage.py shell
Результат:
IndentationError: unexpected indent
Ну вам же ясно сказали - проблема в отступах, проверьте их, я в запощенном вами их проверить не могу. и еще установите в своем редакторе опцию “заменять Tab на пробелы”
ЗЫ: Нет, могу :)
votes = models.IntegerField()
#на следующей строчке лишний отступ!!!
def __str__(self):
return self.choice
avekir
Так-с….. это уже очень интересно :)

Для решения проблемы решил сделать так:

Убрать все Tab-ы
Установил Wing IDE

Код теперь выглядит так:

import datetime
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
def was_published_today(self):
return self.pub_date.date() == datetime.date.today()

class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()
def __unicode__(self):
return self.choice
Wing выдает предупреждение:

IndentationError: expected an indented block (models.py, line 5)

File “C:\Python25\projects\first\mysite\polls\models.py”, line 5, in ? question = models.CharField(max_length=200)

Насколько я понимаю, теперь не хватает либо отступа либо еще чего-то.
avekir
Так-с….. разобрался…. хитрый же питон :)

На было сделать пробелами отступ.
PooH
import datetime
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

def was_published_today(self):
return self.pub_date.date() == datetime.date.today()

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

def __unicode__(self):
return self.choice
В питоне блоки кода выделяются отступами, т.е. отступы это часть кода. Почитайте хотя бы вводный туториал
avekir
ага, вот этого я как раз и не знал :)
alfredalfred
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self): ( это тоже пробовал => __unicode__(self): )
return self.question
def was_published_today(self):
return self.pub_date.date() == datetime.date.today()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB