Skip to content Skip to sidebar Skip to footer

Unexpected Indentation Error, But Indentation Looks Correct

I have been trying to run this code and it throws an indent error. No matter what I try, the result is the same. If I delete the indent before def __str__(self): and the rest of th

Solution 1:

I guess you are mixing spaces and tabs ....

You can indent the code using autopep

please see https://pypi.python.org/pypi/autopep8

Solution 2:

You are mixing spaces and tabs. Assuming the code in your post is using the same indent characters that you're using in reality, here is how your code actually indents, with >--- representing one tab, and . representing one space.

from __future__ import unicode_literals
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils import timezone

classQuestion(models.Model):
....question_text = models.CharField(max_length=200)
....pub_date = models.DateTimeField('date published')

>---def__str__(self):
....>---return self.question_text

....defwas_published_recently(self):
>---....return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

classChoice(models.Model):
....question = models.ForeignKey(Question, on_delete=models.CASCADE) 
....choice_text = models.CharField(max_length=200)
....votes = models.IntegerField(default=0)

>---def__str__(self):
....>---return self.choice_text

As you can see, your indentation is not consistent. When defining both instances of __str__(), your existing indent level is 4 spaces, but the function definition is indented with 1 tab. That results in the error.

By convention, Python code should only be indented using spaces, never tabs, for exactly this reason.

See also PEP 8, specifically the sections "Indentation" and "Tabs or Spaces?"

Post a Comment for "Unexpected Indentation Error, But Indentation Looks Correct"