Opened 13 years ago
Closed 13 years ago
#17438 closed Bug (wontfix)
Model names wrong in administrator pages
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Core (Other) | Version: | 1.3 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
If the model name is SERVER_CONFIG then "Server r_config" will be displayed in the admin interface.
Bad line: django\db\models\options.py(20):
get_verbose_name = lambda class_name: re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))', ' \\1', class_name).lower().strip()
Reproduce in python prompt:
>>> import re >>> e = re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))', ' \\1', "server_config").lower().strip() >>> print e server_config >>> e = re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))', ' \\1', "SERVER_CONFIG").lower().strip() >>> print e serve r_config
Fix:
get_verbose_name = lambda class_name: class_name.lower().replace("_"," ")
Best regards,
Peter Szabady
Change History (2)
comment:1 by , 13 years ago
Description: | modified (diff) |
---|
comment:2 by , 13 years ago
Easy pickings: | unset |
---|---|
Resolution: | → wontfix |
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
That regex isn't about replacing underscores with spaces. As the comment above it mentions, the regex converts
InitialCaps
to lowercase with spaces.As per PEP8:
Thus, models (as classes) in general should not be named in ALL_CAPS. By contrast ALL_CAPS is usually reserved for global variables/immutable values.
While I can see how that would be frustrating if your codebase has chosen a different convention, this doesn't look like a place to me where we need to change the default behavior. You can simply override
verbose_name
for your models.