verbose_name for a model's method
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):
开发者_如何学Pythonreadonly_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?
list_display
created_weekday.short_description = 'Foo'
This solution requires the method to be defined in the ModelAdmin class. You can call a Model method (eg: get_created_weekday
) from ModelAdmin like:
def created_weekday(self, obj):
return obj.get_created_weekday()
精彩评论