更改django createAt字段

zbsbpyhn  于 2023-07-01  发布在  Go
关注(0)|答案(1)|浏览(96)

我有这个模型:

class Temp(models.Model):
    user = models.ForeignKey(to=User, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)

有时我想创建一个固定时间的这个类的对象,但它忽略了时间,并使用auto_now_add设置时间:

data = {'created_at': datetime.datetime.now()}
temp = TempSerializer(data=data)

我能做什么?

yi0zb3m4

yi0zb3m41#

一个**auto_now_add=True**字段[Django-doc]会忽略传递给它的任何值,它只会在对象创建时获取时间戳。
您可以通过设置default=timezone.now来使其可编辑:

from django.conf import settings
from django.utils import timezone

class Temp(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    created_at = models.DateTimeField(default=timezone.now)

注意:通常使用**settings.AUTH_USER_MODEL[Django-doc]引用用户模型比直接使用User**模型[Django-doc]更好。有关详细信息,您可以查看文档的 referencing the User model 部分。

相关问题