使用django admin 顯示字段自定義def的時候 默認會顯示成函數名稱,使用一下方法可自定義顯示名稱
第一種
class TemplateRequestLog(models.Model): templateApp = models.ForeignKey(TemplateApp, verbose_name="模板名稱", on_delete=models.CASCADE) requestUrl = models.URLField(verbose_name="請求路徑") createTime = models.DateTimeField(auto_now_add=True, verbose_name="創建時間") lastTime = models.DateTimeField(auto_now=True, verbose_name="修改時間") editor = models.ForeignKey(User, null=True, on_delete=models.CASCADE, verbose_name="修改者") class Meta: verbose_name_plural = "訪問記錄" def requestName(self): return self.editor.first_name requestName.short_description = "微信昵稱" # 直接修改
第二種
def rename(newname): def decorator(fn): fn.__name__ = newname return fn return decorator class AppNews(models.Model): topImage = models.ImageField(upload_to='../static/uploadImage/AppNews/%Y/%m/%d', verbose_name='滾動圖片', null=True, blank=True) createTime = models.DateTimeField(auto_now_add=True, verbose_name="創建時間") lastTime = models.DateTimeField(auto_now=True, verbose_name="修改時間") editor = models.ForeignKey(User, null=True, on_delete=models.CASCADE, verbose_name="修改者") class Meta: verbose_name_plural = "滾動新聞" @rename("模板頭像") # 添加在頂部 def showTopImage(self): return format_html("<img src='/{}' class='showAvatar'/>", self.topImage) def __str__(self): return self.describe