我正在使用 Django 2.2 表单,我试图理解为什么以下两个片段具有不同的行为。为什么将@staticmethod 传递给initial表单字段(片段A)与传递未绑定函数(片段B)的结果不同?
片段一:
class BankUpdateForm(forms.Form):
@staticmethod
def yesterday():
return date.today() - timedelta(days=1)
from_date = forms.DateField(initial=yesterday)
to_date = forms.DateField(initial=date.today)
片段 B:
def yesterday():
return date.today() - timedelta(days=1)
class BankUpdateForm(forms.Form):
from_date = forms.DateField(initial=yesterday)
to_date = forms.DateField(initial=date.today)
片段 B 将按预期工作并显示正确的初始字段值。片段 A 只会打印函数的str.
