如何为模型的方法设置一个详细名称,以便它可以显示在管理员的 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 的标签是“Created Weekday”,但我希望它有一个不同的标签,也应该是 i18nable 使用 ugettext_lazy。
我试过了
created_weekday.verbose_name=...
在方法之后,但没有显示任何结果。有没有装饰器或我可以使用的东西,所以我可以制作自己的“verbose_name”/“label”/whateverthename 是什么?
最佳答案
created_weekday.short_description = 'Foo'
此解决方案需要在 ModelAdmin 类中定义方法。您可以从 ModelAdmin 调用模型方法(例如:get_created_weekday
),例如:
def created_weekday(self, obj):
return obj.get_created_weekday()
关于python - 模型方法的详细名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2892999/