Opened 17 years ago
Last modified 13 years ago
#6272 closed
django.utils.translation.ugettext_lazy needs __add__ support — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Core (Other) | Version: | dev |
Severity: | Normal | Keywords: | ugettext_lazy unicode concatenate |
Cc: | real.human@… | Triage Stage: | Design decision needed |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
The model fields defined in django.contrib.auth.models (and I assume other parts of django) use django.utils.translation.ugettext_lazy to specify the label (or another property from which the label is derived). The form field objects generated by form_for_* and ModelForm on these models return a django.utils.functional.proxy object instead of a unicode object where ugettex_lazy is not used.
I have a few helper template tags which are trying to alter the form field label with a concatenation, which is throwing an error for form_for_model and ModelForm forms for django.contrib.auth.models.User (and other django/contrib models that use ugettext_lazy).
As the documentation doesn't recommend or require the use of ugettext_lazy in it's examples and tutorials when defining models and forms, this inconsistent behaviour seems less than ideal. If django.utils.functional.proxy could be changed with an add (and other?) methods to behave more like a string/unicode object, that would be good?