대화식 세션 (iPython)에서 기존 클래스에 모델 메서드를 어떻게 추가합니까?
기본 모델이 있습니다.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 ='프랭클린 ')
>>> person.is_midwestern
'is_midwestern'`
'Person' object has no attribute
내가 원하는 것이 분명하지 않습니다. ipython은 파이썬 셸을 에뮬레이션합니다. 그래서 다른 것보다 다를 수 없습니다. 더 잘 설명하십시오. –
세미 - 관련없는 메모에서, 나는 당신이 중서부 주들의 좋은 덩어리를 놓치고 있다고 생각합니다. – Adam
대화 형 세션에서 새 모델 메서드를 추가 할 때 모델 메서드가 파일에 정의되어있을 때처럼 클래스에 연결되어 있지 않은 것처럼 보입니다. 그래서 위와 같이 모델 메서드를 만들고이를 사용하려고 시도했습니다. 예 : '>>> person = Person.objects.filter (last_name ='Franklin ') '>>> person.is_midwestern 'Person '객체에는 속성이 없습니다.'is_midwestern ' – BryanWheelock