Changes between Initial Version and Version 9 of Ticket #36447
- Timestamp:
- Jun 11, 2025, 1:04:38 PM (4 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #36447
- Property Cc added
- Property Keywords preferred media type added
- Property Triage Stage Unreviewed → Accepted
- Property Severity Normal → Release blocker
- Property Owner set to
- Property Status new → assigned
- Property Has patch set
-
Ticket #36447 – Description
initial v9 1 Consider this example from [https://www.rfc-editor.org/rfc/rfc9110.html#section-12.5.1-18 RFC 9110 §12.5.1] :1 Consider this example from [https://www.rfc-editor.org/rfc/rfc9110.html#section-12.5.1-18 RFC 9110 §12.5.1] (adjusted for [https://www.rfc-editor.org/errata/eid7138 erratum 7138]): 2 2 3 3 The media type quality factor associated with a given type is determined by finding the media range with the highest precedence that matches the type. For example, … … 13 13 || image/jpeg || 0.5 || 14 14 || text/plain;format=fixed || 0.4 || 15 || text/html;level=3 || 0. 7||15 || text/html;level=3 || 0.3 || 16 16 17 17 Django’s `HttpRequest.get_preferred_type` fails to match this behavior. … … 27 27 >>> request.get_preferred_type(['text/html', 'image/jpeg']) # expected image/jpeg (0.3 < 0.5) 28 28 'text/html' 29 >>> request.get_preferred_type(['text/html', 'text/html;level=3']) # expected text/html;level=3 (0.3 < 0.7)30 'text/html'31 29 >>> request.get_preferred_type(['image/jpeg', 'text/html']) # expected image/jpeg (0.5 > 0.3) 32 30 'text/html' 33 31 >>> request.get_preferred_type(['image/jpeg', 'text/plain;format=fixed']) # expected image/jpeg (0.5 > 0.4) 34 32 'text/plain;format=fixed' 33 >>> request.get_preferred_type(['image/jpeg', 'text/html;level=3']) # expected image/jpeg (0.5 > 0.3) 34 'text/html;level=3' 35 35 >>> request.get_preferred_type(['text/plain;format=fixed', 'text/plain']) # expected text/plain (0.4 < 0.7) 36 36 'text/plain;format=fixed' 37 37 >>> request.get_preferred_type(['text/plain;format=fixed', 'image/jpeg']) # expected image/jpeg (0.4 < 0.5) 38 38 'text/plain;format=fixed' 39 >>> request.get_preferred_type(['text/plain;format=fixed', 'text/html;level=3']) # expected text/html;level=3 (0.4 < 0.7) 40 'text/plain;format=fixed' 41 >>> request.get_preferred_type(['text/html;level=3', 'text/plain;format=fixed']) # expected text/html;level=3 (0.7 > 0.4) 42 'text/plain;format=fixed' 39 >>> request.get_preferred_type(['text/html;level=3', 'image/jpeg']) # expected image/jpeg (0.3 < 0.5) 40 'text/html;level=3' 43 41 }}}