gpt4 book ai didi

python - 如何将模型方法添加到交互式 session 中的现有类(在 iPython 中)?

转载 作者:太空宇宙 更新时间:2023-11-04 07:48:19 24 4
gpt4 key购买 nike

我有一个基本模型:

class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
state = USStateField()

我开始一个 iPython session :

$ python manage.py shell
>>> from app.models import Person

如何在 iPython session 中添加此模型方法?

>>>    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 session 。

我似乎做错了什么,因为当我在交互式 session 中添加一个新的模型方法时,它似乎没有像在文件中定义模型方法时那样链接到类。

因此,如果我如上所述创建模型方法并尝试使用它。例如' >>> person = Person.objects.filter(last_name='Franklin')
>>> person.is_midwestern<br/>
'Person' object has no attribute
'is_midwestern'`

最佳答案

为什么你不能这样做Person.is_midwestern = is_misiwestern 例如

>>> class Person:
... def __init__(self): self.mid = True
...
>>> def is_midwestern(self): return self.mid
...
>>> Person.is_midwestern = is_midwestern
>>> p = Person()
>>> p.is_midwestern()

True
>>>

关于python - 如何将模型方法添加到交互式 session 中的现有类(在 iPython 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com