我使用timezone.now()(django.utils importimezone)来设置我的模型的初始日期,但是timezone.now()被固定为我设置服务器的时间,并且没有改变,我该如何解决这个问题?我希望timezone.now()返回用户创建对象的日期时间,而不是我运行服务器的时间。
tcomlyy61#
您应该将对函数的引用传递给它,因此:
from django.db import models from django.utils import timezone class MyModel(models.Model): created_at = models.DateTimeField(default=timezone.now)
但是你可能想使用**auto_now_add=True**[Django-doc],这也会使字段不可编辑:
auto_now_add=True
from django.db import models class MyModel(models.Model): created_at = models.DateTimeField(auto_now_add=True)
gpnt7bae2#
常用的模型扩展用于TimeStampedModel的这种特定情况
TimeStampedModel
from django_extensions.db.models import TimeStampedModel class MyModel(TimeStampedModel): pass
迁移将创建created和updated,它们的处理完全符合您的预期。
created
updated
2条答案
按热度按时间tcomlyy61#
您应该将对函数的引用传递给它,因此:
但是你可能想使用**
auto_now_add=True
**[Django-doc],这也会使字段不可编辑:gpnt7bae2#
常用的模型扩展用于
TimeStampedModel
的这种特定情况迁移将创建
created
和updated
,它们的处理完全符合您的预期。