我有一个基本模型:
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 shell 会话。
我似乎做错了什么,因为当我在交互式会话中添加新模型方法时,它似乎没有像在文件中定义模型方法时那样链接到类。
因此,如果我如上所述创建模型方法并尝试使用它。例如' >>> person = Person.objects.filter(last_name='Franklin') 'is_midwestern'`
>>> person.is_midwestern
'Person' object has no attribute