views:

41

answers:

1

How can I set a verbose_name for a model's method, so that it might be displayed in the admin's change_view form?

example:

class Article(models.Model):
    title = models.CharField(max_length=64)
    created_date = models.DateTimeField(....)
    def created_weekday(self):
        return self.created_date.strftime("%A")

in admin.py:

class ArticleAdmin(admin.ModelAdmin):
    readonly_fields = ('created_weekday',)
    fields = ('title', 'created_weekday')

Now the label for created_weekday is "Created Weekday", but I'd like it to have a different label which should be i18nable using ugettext_lazy as well.

I've tried

    created_weekday.verbose_name=...

after the method, but that did not show any result. Is there a decorator or something I can use, so I could make my own "verbose_name" / "label" / whateverthename is?

+2  A: 

list_display

created_weekday.short_description = 'Foo'
rebus
thanks, that works. no wonder I didn't find it in the documentation - it is written under "ModelAdmin.list_display"...
mawimawi
Yes, but the documentation for `readonly_fields` does say "This option behaves nearly identical to ModelAdmin.list_display".
Daniel Roseman