Opened 9 hours ago

Last modified 9 hours ago

#36078 new Bug

Postgres date and time range fields change after saving object

Reported by: Mapiarz Owned by:
Component: contrib.postgres Version: 4.2
Severity: Normal Keywords: postgres
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Mapiarz)

This short test exemplifies the problem:

now = timezone.now()
empty_range = psycopg2_range.DateTimeTZRange(empty=True)

test_model = TestModel(range=psycopg2_range.DateTimeTZRange(now, now))

self.assertFalse(test_model.range.isempty)
self.assertNotEqual(test_model.range, empty_range)

test_model.save()
test_model.refresh_from_db()

self.assertTrue(test_model.range.isempty)
self.assertEqual(test_model.range, empty_range)

I would expect the field value not to change after saving, and it should continue to have the lower, upper and boundary fields set.

Repro project: https://github.com/Mapiarz/django_postgres_range_repro/tree/master

The example is for DateTimeRange, but DateRange Is also affected. Other ranges possibly too, I haven't tested.

Change History (1)

comment:1 by Mapiarz, 9 hours ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top