Opened 17 years ago
Closed 16 years ago
#3526 closed (fixed)
HttpResponse object should have 'content_type' argument (in additon to / instead of 'mimetype')
Reported by: | Simon Willison | Owned by: | Adrian Holovaty |
---|---|---|---|
Component: | Core (Other) | Version: | dev |
Severity: | Keywords: | httpresponse | |
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | yes | Needs documentation: | yes |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I can never remember the 'mimetype' argument to HttpResponse; I always have to look it up. The corresponding HTTP header is 'Content-Type'; I think that content_type would be a more memorable and more accurate argument.
For example:
return HttpResponse(simplejson.dumps({ 'airports': airports }), mimetype='application/json; charset=utf-8')
Should be:
return HttpResponse(simplejson.dumps({ 'airports': airports }), content_type='application/json; charset=utf-8')
The charset=utf-8 bit further demonstrates that mimetype should be renamed - charset=utf-8 is a parameter, not part of the actual mime media type.
I suggest adding content_type as an alternative to mimetype; I see no particular need to deprecate mimetype and break existing code, although it may be something that should be removed in the future.
Attachments (1)
Change History (10)
Changed 17 years ago by
Attachment: | content_type.diff added |
---|
comment:1 Changed 17 years ago by
Has patch: | set |
---|---|
Needs documentation: | set |
comment:2 Changed 17 years ago by
Needs tests: | set |
---|
comment:3 Changed 17 years ago by
Triage Stage: | Unreviewed → Design decision needed |
---|
comment:4 Changed 17 years ago by
Triage Stage: | Design decision needed → Accepted |
---|
This looks reasonable. However, isn't the patch broken? If you pass in mimetype, but not content_type, then lines 162 and 163 will stomp all over line 161 in the new version. Looks like 163 should be "elif". Otherwise, looks like the right idea.
comment:6 Changed 16 years ago by
Triage Stage: | Accepted → Ready for checkin |
---|
comment:8 Changed 16 years ago by
The only change I made in the version I'm about to commit is to move the content_type parameter to the end of the constructor list to preserve backwards compatibility for people using positional arguments.
comment:9 Changed 16 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Patch to add content_type argument without breaking mimetype