You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django向REST API POST数据时如何自动添加类似AutoField 'ID'的时间戳

DateTimeField自动填充时间戳实现方案

以下是基于Django ORM的通用实现方式,其他ORM框架逻辑类似,可参考对应框架的字段配置/生命周期钩子实现:

固定自动生成、不允许手动修改的场景

和AutoField类型的ID逻辑完全一致,仅在数据首次插入数据库时自动赋值,后续修改不会变更:

  • 给字段配置auto_now_add=True参数即可,配置样例如下:
from django.db import models

class 你的模型类(models.Model):
    # 你的其他业务字段
    create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")

如果需要每次数据更新时自动刷新为最新时间,可以使用auto_now=True参数:

from django.db import models

class 你的模型类(models.Model):
    # 你的其他业务字段
    update_time = models.DateTimeField(auto_now=True, verbose_name="最后更新时间")

需要同时支持自动生成+手动修改的场景

如果你的需求是默认自动生成时间戳,手动传入指定时间时优先使用传入值,不要配置上述两个参数,重写模型的save方法即可:

from django.db import models
from django.utils import timezone

class 你的模型类(models.Model):
    custom_time = models.DateTimeField(verbose_name="时间字段", null=True, blank=True)

    def save(self, *args, **kwargs):
        # 首次创建且没有手动传入时间时自动填充
        if not self.pk and not self.custom_time:
            self.custom_time = timezone.now()
        super().save(*args, **kwargs)

注意:修改模型字段配置后需要执行makemigrations和migrate命令完成数据库迁移才会生效。

内容的提问来源于stack exchange,提问作者Nic0lodeon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:36:03