﻿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
33512	Creating a child instance with a parent containing DateTimeField(auto_add_now=True) raises IntegrityError.	Eriks K	nobody	"Description:
When creating Model object which inherits from other Model which has `DateTimeField` with `auto_add_now=True` and passing `parent_ptr_id` value, then Django tries to update base Model by setting the auto_now_add field to NUL (although the field is null=False)

Expected result:
ChildModel instance created with a link to ParentModel.

Code examples:
`models.py`
{{{
class ParentModel(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)


class ChildModel(ParentModel):
    some_field = models.CharField(max_length=12)
}}}

`manage.py shell`
{{{
from app.models import ParentModel, ChildModel
parent_object = ParentModel.objects.create()  # OK
ChildModel.objects.create()  # OK
ChildModel.objects.create(parentmodel_ptr=parent_object)  # IntegrityError
}}}

Actual result:
Django tries to update ParentModel's `created` with NULL
{{{
UPDATE ""app_parentmodel"" SET ""created"" = NULL, ""modified"" = ? WHERE ""app_parentmodel"".""id"" = ?
}}}
And raises
{{{
django.db.utils.IntegrityError: NOT NULL constraint failed: app_parentmodel.created
}}}


Noticed in Django 2.2, reproduced in 3.2 and 4.0. with both Postgres and SQlite database backends.
[https://github.com/eeriks/django-demo Demo project on GitHub] to reproduce bug."	Bug	closed	Database layer (models, ORM)	4.0	Normal	duplicate	auto_add_now		Unreviewed	0	0	0	0	0	0
