Verbose_name для модельного метода

Как установить verbose_name для метода модели, чтобы он отображался в форме admin change_view?

Пример:

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

в admin.py:

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

Теперь ярлык для created_weekday - "Созданный будний день", но я бы хотел, чтобы у него была другая метка, которая должна быть i18nable, используя также ugettext_lazy.

Я пробовал

    created_weekday.verbose_name=...

после метода, но это не показало никакого результата. Есть ли декоратор или что-то, что я могу использовать, чтобы я мог создать собственное "verbose_name" / "label" /whateverthename?

Ответы

Ответ 1

list_display

created_weekday.short_description = 'Foo'

Это решение требует, чтобы метод был определен в классе ModelAdmin. Вы можете вызвать метод Model (например, get_created_weekday) из ModelAdmin, например:

def created_weekday(self, obj):
    return obj.get_created_weekday()