У меня есть базовая модель:
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
state = USStateField()
Я запускаю сеанс iPython с:
$ python manage.py shell
>>> from app.models import Person
Как добавить этот метод модели в сеанс iPython?
>>> def is_midwestern(self):
... "Returns True if this person is from the Midwest."
... return self.state in ('IL', 'WI', 'MI', 'IN', 'OH', 'IA', 'MO')
>>> person = Person.objects.filter(last_name='Franklin')
>>> person.is_midwestern
True
Я хочу иметь возможность протестировать эти методы модели, не добавляя метод в файл models.py, а затем перезапуская сеанс оболочки iPython.
Я, кажется, что-то делаю не так, потому что когда я добавляю новый метод модели в интерактивном сеансе, он, кажется, не связан с классом, как это происходит, когда метод модели определяется в файле.
Так что, если я создал метод модели, как описано выше, и попытался использовать его.
например
'>>> person = Person.objects.filter (last_name =' Franklin ')
>>> person.is_midwestern<br>
'Person' object has no attribute
is_midwestern'`