如何在烧瓶模型中定义函数并将其用于变量
Posted
技术标签:
【中文标题】如何在烧瓶模型中定义函数并将其用于变量【英文标题】:How to define a function inside flask model and use it for a variable 【发布时间】:2020-10-07 23:47:31 【问题描述】:这是我在烧瓶模型中定义函数的一段代码,我想将函数的输出用作变量的默认值(已创建)。
class Test(db.Document):
def default_date(self):
tz = pytz.timezone('Asia/Kolkata')
return datetime.datetime.now()
name = db.StringField(default="Anonymous")
created = db.DateTimeField(default=default_date())
我无法在创建时使用 default_date 的输出。它给了我这个错误
TypeError: indian_date() missing 1 required positional argument: 'self'
我什至没有自我尝试过。我不确定是否应该为此使用静态方法或类方法。
【问题讨论】:
self.default_date
- 带有self.
并且可能没有()
因为带有()
它将立即运行,它会在启动时将函数的结果分配为默认值并使用相同的值 all时间。
【参考方案1】:
我无法对其进行测试以确认,但它应该带有 self.
而没有 ()
created = db.DateTimeField(default=self.default_date)
如果您使用()
运行,那么它将在启动时立即运行此函数,并在启动时分配函数的结果,以后的代码将始终使用相同的值。
【讨论】:
以上是关于如何在烧瓶模型中定义函数并将其用于变量的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ruby 中建立两个模型之间的模型关联。或者如何从一个模型中获取数据并将其用于另一个模型?
如何从widget的函数返回值,并将其传递给Tkinter,Python中的另一个小部件的函数