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()