在通过 Django 管理添加新对象时不调用模型字段中的可调用

Callable in model field not called upon adding new object through Django admin

https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.Field.default

我们读到,每次创建新对象时都会调用默认字段值的可调用对象。

在我的模型中我有:

when_first_upload = models.DateTimeField(default=datetime.datetime.now())

当我在管理页面中创建一个新对象时,我总是得到相同的结果 日期时间,就像未调用可调用对象一样。有什么想法吗?

就好像有什么东西被缓存在某个地方,并保留了可调用对象的最后一次评估调用。

当我进行迁移时,它会重置,但在添加新对象时会保持不变 直到下一次迁移。

尝试:

when_first_upload = models.DateTimeField(default=datetime.datetime.now)

您需要可调用对象本身,而不是它返回的结果。