Opened 15 years ago
Closed 4 years ago
#9762 closed Bug (fixed)
template filter |date:"r" not valid RFC 2822 formatted when LANGUAGE_CODE different than english
Reported by: | Antonio Melé | Owned by: | kgrandis |
---|---|---|---|
Component: | Utilities | Version: | dev |
Severity: | Normal | Keywords: | date template filter |
Cc: | mmitar@… | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Documentation says template filter date with argument 'r' returns a valid RFC 2822 formatted date. But setting a LANGUAGE_CODE different than english makes the date returned not valid because the day abbreviation is translated into the LANGUAGE_CODE language. Perhaps there should be two arguments for this: one for valid RFC 2822 dates and another one for the actual 'r' argument (RFC 2822 translated).
Attachments (4)
Change History (21)
comment:1 Changed 15 years ago by
milestone: | post-1.0 |
---|
comment:2 Changed 15 years ago by
Triage Stage: | Unreviewed → Accepted |
---|
comment:4 Changed 15 years ago by
Owner: | changed from nobody to kgrandis |
---|---|
Status: | new → assigned |
Changed 15 years ago by
Attachment: | rfc2822.diff added |
---|
corrected rfc2822 implementation and added tests
comment:5 Changed 15 years ago by
Has patch: | set |
---|
The attached patch makes the 'r' flag returns an RFC 2822 formatted date string even when LANGUAGE_CODE is set to something other than English. Added regression tests to reflect this issue.
There will be a simpler solution once Python implements a datetime-RFC 2822 export feature ( http://bugs.python.org/issue665194 ).
comment:6 Changed 14 years ago by
Owner: | changed from kgrandis to Karen Tracey |
---|---|
Status: | assigned → new |
comment:7 Changed 14 years ago by
Owner: | changed from Karen Tracey to kgrandis |
---|
Tests in patch need updating -- that file has been converted to unit tests.
Changed 14 years ago by
Attachment: | rfc2822.2.diff added |
---|
updated tests to unit tests and fixed an issue with tzinfo
Changed 14 years ago by
Attachment: | rfc2822.2.2.diff added |
---|
updated tests to unit tests and fixed an issue with tzinfo
comment:8 Changed 14 years ago by
The patch now includes new tests.
An existing unit test was modified to adhere to a common RFC 2822 standard. This patch generates the date string using Python's email.utils.formatdate (available in py2.4).
The above Python issue is still open, but its solution will allow for a much more straightforward solution. It looks to be slated for Python 2.7: http://bugs.python.org/issue665194
Changed 14 years ago by
Attachment: | rfc2822.3.diff added |
---|
restored system settings.LANGUAGE_CODE after monkeying around
comment:9 Changed 13 years ago by
Should this handle timezone infromation?, if the answer is no then this patch is on the right track, if the answer is yes then maybe we should handle things manually (and move the code to a helper function) instead of using email.utils
(e.g. like we are douiing in the feed geenrator: http://code.djangoproject.com/browser/django/trunk/django/utils/feedgenerator.py?rev=15505#L39)
comment:10 Changed 13 years ago by
Easy pickings: | unset |
---|---|
Patch needs improvement: | set |
Severity: | → Normal |
Type: | → Uncategorized |
rfc2822.3.diff fails to apply cleanly on to trunk
comment:11 Changed 13 years ago by
Type: | Uncategorized → Bug |
---|
comment:14 Changed 11 years ago by
Cc: | mmitar@… added |
---|
comment:15 Changed 11 years ago by
guys, this is really annoying...
a workaround is to import the rfc2822_date from django.utils.feedgenerator and just register it as an own filter.
comment:16 Changed 4 years ago by
Component: | Template system → Utilities |
---|---|
Patch needs improvement: | unset |
Pull request available at https://github.com/django/django/pull/12122
Milestone post-1.0 deleted