python - 使用 django 模型方法作为静态函数
问题描述
我想使用 django 模型方法作为静态函数。更具体地说,我想在我的表 Patient 的一个实例上使用一个名为 age 的模型方法,如下所示,但我还想使用 pandas apply 函数将 age 函数应用于 pandas 数据帧中的行。这是可能的还是我必须专门编写另一个函数来处理我的数据框?
class Patient(models.Model):
pat_id1 = models.AutoField(db_column='Pat_ID1', primary_key=True)
birth_dttm = models.DateTimeField(db_column='Birth_DtTm', blank=True, null=True)
objects = models.Manager()
class Meta:
managed = False
db_table = 'Patient'
@property
def age(self):
return relativedelta(date.today(), self.birth_dttm.date()).years
解决方案
您的age
功能正在使用self
. 这意味着此函数依赖于您的类的实例来提供输出。因此,此方法不能声明为staticmethod
.
编辑journaldev的 摘录静态方法有一个非常清晰的用例。当我们需要一些不是对象而是完整类的功能时,我们将方法设为静态。当我们需要创建实用程序方法时,这非常有利,因为它们不依赖于对象生命周期。
推荐阅读
- c - 关于地址值和指针增量的问题?
- javascript - 在 Bootstrap 模式中动态更新按钮 onclick
- python - TensorFlow tf.map_fn 错误
- php - IIS 和 Wamp 都在运行时已加载错误模块“xmlrpc”
- laravel - 如何在laravel中使用hashtag href创建路由
- python - 棋盘棋子不显示
- python - WinError 267 目录名无效
- integration - 我可以将grapejs网站构建器集成到我自己的网站中吗
- arduino - 将 ESP32/ESP8266 连接到域网站以控制 LED
- package - 获取 debian 10 的预装包列表