在不使用DateField的情况下实时将默认年份设置为当前年份

时间:2012-02-04 17:42:15

标签: python django

这就是我现在正在做的事情。

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 个答案:

答案 0 :(得分:1)

您可以使用表单字段的default参数,该参数也可以是可调用的。见https://docs.djangoproject.com/en/dev/ref/models/fields/#default

在这种情况下,您可以将__init__重命名为setyear(并移出课堂外),并使用Year = models.CharField(max_length=6, default=setyear)

定义字段