verbose_name для метода модели - PullRequest
17 голосов
/ 23 мая 2010

Как я могу задать verbose_name для метода модели, чтобы он мог отображаться в форме администратора 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')

Теперь метка для create_weekday - "Created Weekday", но я бы хотел, чтобы она имела другую метку, которую также можно использовать с помощью ugettext_lazy.

Я пробовал

    created_weekday.verbose_name=...

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

1 Ответ

21 голосов
/ 23 мая 2010

list_display

created_weekday.short_description = 'Foo'

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

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