在实时中设置默认年份为当前年份,且不使用DateField
这是我现在的做法。
class Season(models.Model):
Name = models.CharField(max_length=20)
Year = models.CharField(max_length=6)
start_date = models.DateField()
end_date = models.DateField()
league = models.ManyToManyField(League)
def __init__(self):
"""
Setting default year current year
"""
today = datetime.date.today()
today = today.timetuple()
defaultyear = today[0]
defaultyear = str(defaultyear)
self.Year = defaultyear
return self.Year
我这样用init对吗?还是说我漏掉了什么?或者我应该把init改成别的名字,比如'setyear'?如果是这样的话,我在Django后台该怎么调用它呢?
//鼠标
1 个回答
2
你可以使用表单字段的 default
参数,这个参数也可以是一个可调用的函数。具体可以参考这个链接:https://docs.djangoproject.com/en/dev/ref/models/fields/#default
在这种情况下,你可以把 __init__
改名为 setyear
(并把它移到类的外面),然后用 Year = models.CharField(max_length=6, default=setyear)
来定义这个字段。