Posted at

Django での AttributeError

More than 1 year has passed since last update.

Django でちょっとハマったのでメモ。


コードとエラー


models.py

from django.db import models

class Foo(models.Model):
title = models.CharField(name='タイトル')
content = models.TextField(name='内容')

def __str__(self):
return self.title



Shell

~/path/to/proj $ python manage.py shell

...
>>> from bar.models import Foo
>>> foo = Foo()
>>> foo.title = "Hoge"
>>> foo.content = "Fuga"
>>> foo.save()
>>> Foo.objects.all()
Traceback (most recent call last):
File "<console>", line 1 in <module>
...
File "/path/to/proj/bar/models.py", line 8, in __str__
return self.title
AttributeError: 'Foo' object has no attribute 'title'
>>> exit()


解決策


models.py

from django.db import models

class Foo(models.Model):
title = models.CharField(verbose_name='タイトル')
content = models.TextField(verbose_name='内容')

def __str__(self):
return self.title


name='タイトル' , name='内容'

verbose_name='タイトル', verbose_name='内容' にしたら直った。

また name='タイトル' , name='内容' のままで __str__


models.py

...

def __str__(self):
return self.タイトル

に変えてもAttributeErrorが出なくなった。