Django always capitalizes a model's verbose name in admin index page

There's a similar question concerning a field's verbose_name: How to stop auto-capitalization of verbose_name in django

When listing available models of an app in the admin index page, Django always capitalizes the first letter of the model's verbose_name_plural and use it as the model's name.

Here's the code from django.contrib.admin.sites.py:

model_dict = {
    'name': capfirst(model._meta.verbose_name_plural),
    'perms': perms,
}

But consider the following screenshot, I want to display "vCenters" instead of "VCenters".

I can remove the capfirst, and explicitly capitalize other models' verbose_name_plural to make it work.

But I have to change django's source code and it doesn't seem to be a bug of Django. Are there any better solutions?

Answers


It's not that easy ....

  • Make a copy of the admin/index.html template to your template/admin/index.html
  • Create your own template filter: lowerfirst_if_starts_with_v in your own templatetags/my_special_thing.py directory

'

@register.filter(is_safe=True)
@stringfilter
def lowerfirst_if_starts_with_v(value):
    """Lowercase the first character of the value."""
    return value and value[0] =='v' and value[0].lower() + value[1:]
  • Load it in the index.html

'

{%load my_special_thing%}
  • Apply it to index.html on line 23

'

<th scope="row"><a href="{{ model.admin_url }}"> \
{{ model.name|lowerfirst_if_starts_with_v }}</a></th>

and done


Need Your Help

Crash on iOS 6 device when loading table view controller using Xcode 4.5. GM

ios xcode uitableview

I'm seeing other questions posted re iOS 6 so I hope its now kosher to ask them here ...

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.