私は基本的なモデルを持っています:
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')' is_midwestern'`
>>> person.is_midwestern
'Person' object has no attribute