verbose_name для метода модели

Как я могу установить 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')

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

Я попробовал

    created_weekday.verbose_name=...

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

17
задан mawimawi 23 May 2010 в 18:55
поделиться

1 ответ

list_display

created_weekday.short_description = 'Foo'

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

def created_weekday(self, obj):
    return obj.get_created_weekday()
21
ответ дан 30 November 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: