#11058: list_display_links doesn't allow callables not defined in the model
-------------------------------------------+--------------------------------
          Reporter:  dvine                 |         Owner:  nobody
            Status:  new                   |     Milestone:        
         Component:  django.contrib.admin  |       Version:  1.0   
        Resolution:                        |      Keywords:        
             Stage:  Unreviewed            |     Has_patch:  0     
        Needs_docs:  0                     |   Needs_tests:  0     
Needs_better_patch:  0                     |  
-------------------------------------------+--------------------------------
Comment (by akaihola):

 If all (or most of) fields displayed are editable, it makes sense to have
 an "Edit" link.

 Here's how we can display an initial "Edit" column with links to change
 forms for each row:
 {{{
 def list_display_column_factory(value, title=None):
     column = lambda result: value
     column.short_description = title or value
     return column

 class PollAdmin(admin.ModelAdmin):
     model = Poll
     edit_column = list_display_column_factory(_(u'Edit'))
     list_display = (edit_column, 'question', 'pub_date')
     list_editable = ('question', 'pub_date')
 }}}

 But if we want to move the "Edit" column to another position or introduce
 another link column, this won't work:
 {{{
     list_display = ('question', 'pub_date', edit_column)
     list_editable = ('pub_date', )
     list_display_links = ('question', edit_column,)
 }}}

 It throws this exception:
 {{{
   [...]
   File "polls/admin.py", line 16, in <module>
     admin.site.register(Poll, PollAdmin)
   File "django/contrib/admin/sites.py", line 92, in register
     validate(admin_class, model)
   File "django/contrib/admin/validation.py", line 50, in validate
     fetch_attr(cls, model, opts, 'list_display_links[%d]' % idx, field)
   File "django/contrib/admin/validation.py", line 308, in fetch_attr
     return getattr(model, field)
 TypeError: getattr(): attribute name must be string
 }}}

-- 
Ticket URL: <http://code.djangoproject.com/ticket/11058#comment:2>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to