﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
36876	Model timestamp fields get different values using auto_now	Thomas Drevon		"I have a BaseModel, which I use to set created_at and updated_at. Like so:

{{{
class BaseModel(models.Model):
    id = models.CharField(primary_key=True, max_length=50, default=generate_nanoid, editable=False)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
}}}

When a row is created in one of my tables, both created_at and udpated_at fields are set. Which is expected. What is ''not'' expected, is that the created_at field gets a slightly older value than the updated_at field. Typically:

created_at: 2026-01-22 08:53:38.479806+00
updated_at: 2026-01-22 08:53:38.479828+00

This is, in my opinion, a bug. Because create happens (I presume) in a single transaction. And also because these fields when, compared for similiarty, should reveal if the row has been updated at some later time.

As a workaround, one could override the model save method like so:

{{{
    def save(self, *args, **kwargs):
        """"""Ensure created_at and updated_at are identical on creation""""""
        if self._state.adding:
            now = timezone.now()
            if not self.created_at:
                self.created_at = now
            self.updated_at = self.created_at
        super().save(*args, **kwargs)
}}}

This should probably get attention because it might be a symptom of inconsistent timestamp usage during create?

(My exact django version is v5.2.9)"	Bug	new	Database layer (models, ORM)	5.2	Normal			Thomas Drevon	Unreviewed	0	0	0	0	0	0
