Opened 14 years ago

Closed 14 years ago

Last modified 12 years ago

#12841 closed (duplicate)

In admin options class, blank short_description causes "string index out of range" exception

Reported by: Greg Brown Owned by: nobody
Component: contrib.admin Version: 1.2-beta
Severity: Keywords:
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Example admin.py:

from models import MyModel
from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('name', 'my_custom_method', )
    
    def my_custom_method(self, instance):
        return 'custom text'

    my_custom_method.short_description = ''

admin.site.register(MyModel, MyModelAdmin)

Descripion

This admin classes changelist seems to throw a TemplateSyntaxError when trying to prettify the short description (which I'd have thought shouldn't really be happening; the point of short description in this context is to customise the column header, which by default is created by prettifying the function name)

The full traceback is

Original Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/template/debug.py", line 72, in render_node
    result = node.render(context)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/template/__init__.py", line 945, in render
    dict = func(*args)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/contrib/admin/templatetags/admin_list.py", line 194, in result_list
    'result_headers': list(result_headers(cl)),
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/contrib/admin/templatetags/admin_list.py", line 91, in result_headers
    header = pretty_name(header)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/forms/forms.py", line 22, in pretty_name
    name = name[0].upper() + name[1:]
IndexError: string index out of range

Attachments (1)

12841.patch (432 bytes ) - added by Ales Zoulek 14 years ago.
Simple patch

Download all attachments as: .zip

Change History (5)

comment:1 by Alex Gaynor, 14 years ago

Component: Uncategorizeddjango.contrib.admin
milestone: 1.2
Triage Stage: UnreviewedAccepted

by Ales Zoulek, 14 years ago

Attachment: 12841.patch added

Simple patch

comment:2 by Ales Zoulek, 14 years ago

I've attached just a simple patch that uses string's method capitalize() instead.

comment:3 by Jiri Suchan, 14 years ago

Resolution: duplicate
Status: newclosed

duplicate of #12434

comment:4 by Jacob, 12 years ago

milestone: 1.2

Milestone 1.2 deleted

Note: See TracTickets for help on using tickets.
Back to Top