@@ -540,6 +540,21 @@ class TestSerializer(serializers.Serializer):
540540 rendered
541541 )
542542
543+ def test_datetime_field_rendering_with_format_as_none (self ):
544+ class TestSerializer (serializers .Serializer ):
545+ appointment = serializers .DateTimeField (format = None )
546+
547+ appointment = datetime (2024 , 12 , 24 , 0 , 55 , 30 , 345678 )
548+ serializer = TestSerializer (data = {"appointment" : appointment })
549+ serializer .is_valid ()
550+ renderer = HTMLFormRenderer ()
551+ field = serializer ['appointment' ]
552+ rendered = renderer .render_field (field , {})
553+ self .assertInHTML (
554+ '<input name="appointment" class="form-control" type="datetime-local" value="2024-12-24T00:55:30.345">' ,
555+ rendered
556+ )
557+
543558 def test_datetime_field_rendering_with_format (self ):
544559 class TestSerializer (serializers .Serializer ):
545560 appointment = serializers .DateTimeField (format = '%a %d %b %Y, %I:%M%p' )
@@ -551,12 +566,12 @@ class TestSerializer(serializers.Serializer):
551566 field = serializer ['appointment' ]
552567 rendered = renderer .render_field (field , {})
553568 self .assertInHTML (
554- '<input name="appointment" class="form-control" type="datetime-local" value="2024-12-24T00:55:30.345 ">' ,
569+ '<input name="appointment" class="form-control" type="datetime-local" value="2024-12-24T00:55:00.000 ">' ,
555570 rendered
556571 )
557572
558573 @override_settings (TIME_ZONE = 'UTC' , USE_TZ = True )
559- def test_datetime_field_utc (self ):
574+ def test_datetime_field_rendering_utc (self ):
560575 class TestSerializer (serializers .Serializer ):
561576 appointment = serializers .DateTimeField ()
562577
@@ -571,6 +586,22 @@ class TestSerializer(serializers.Serializer):
571586 rendered
572587 )
573588
589+ @override_settings (REST_FRAMEWORK = {'DATETIME_FORMAT' : '%a %d %b %Y, %I:%M%p' })
590+ def test_datetime_field_rendering_with_custom_datetime_format (self ):
591+ class TestSerializer (serializers .Serializer ):
592+ appointment = serializers .DateTimeField ()
593+
594+ appointment = datetime (2024 , 12 , 24 , 0 , 55 , 30 , 345678 )
595+ serializer = TestSerializer (data = {"appointment" : appointment })
596+ serializer .is_valid ()
597+ renderer = HTMLFormRenderer ()
598+ field = serializer ['appointment' ]
599+ rendered = renderer .render_field (field , {})
600+ self .assertInHTML (
601+ '<input name="appointment" class="form-control" type="datetime-local" value="2024-12-24T00:55:00.000">' ,
602+ rendered
603+ )
604+
574605
575606class TestHTMLFormRenderer (TestCase ):
576607 def setUp (self ):
0 commit comments