如何在 Django admin ListView 中将 True 值更改为绿色检查
How to change True value into green check in the Django admin ListView
models.py
class Example(models.Model):
sort = models.PositiveIntegerField(default=0, blank=False, null=False)
created = models.DateTimeField(editable=False)
modified = models.DateTimeField(editable=False)
online = models.BooleanField(default=True)
title = models.CharField(max_length=300, blank=True)
slug = models.SlugField(max_length=255, blank=True, unique=True)
main_image = models.ImageField(upload_to='images', blank=True)
def __str__(self):
return self.title
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
if not self.id:
self.created = timezone.now()
self.modified = timezone.now()
super().save(*args, **kwargs)
def image_tag(self):
if self.main_image:
return True
else:
return False
如您所见,如果您有 BooleanField
在线 - 它会将真或假更改为绿色或红色。我怎样才能实现 - 当我的 ImageField 为空时它会做同样的事情。我创建了一个 image_tag
方法,该方法会 return True 或 False 但不确定下一步该做什么 - 我是否需要覆盖模板 - 有没有办法做到这一点?
正确的方法是在方法本身上设置一个 boolean
属性。您还应该确保该方法始终 returns a bool.
def image_tag(self):
return bool(self.main_image)
image_tag.boolean = True
(已记录,但无法 link 到确切位置:请参阅 list_display
部分的一半。)
models.py
class Example(models.Model):
sort = models.PositiveIntegerField(default=0, blank=False, null=False)
created = models.DateTimeField(editable=False)
modified = models.DateTimeField(editable=False)
online = models.BooleanField(default=True)
title = models.CharField(max_length=300, blank=True)
slug = models.SlugField(max_length=255, blank=True, unique=True)
main_image = models.ImageField(upload_to='images', blank=True)
def __str__(self):
return self.title
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
if not self.id:
self.created = timezone.now()
self.modified = timezone.now()
super().save(*args, **kwargs)
def image_tag(self):
if self.main_image:
return True
else:
return False
如您所见,如果您有 BooleanField
在线 - 它会将真或假更改为绿色或红色。我怎样才能实现 - 当我的 ImageField 为空时它会做同样的事情。我创建了一个 image_tag
方法,该方法会 return True 或 False 但不确定下一步该做什么 - 我是否需要覆盖模板 - 有没有办法做到这一点?
正确的方法是在方法本身上设置一个 boolean
属性。您还应该确保该方法始终 returns a bool.
def image_tag(self):
return bool(self.main_image)
image_tag.boolean = True
(已记录,但无法 link 到确切位置:请参阅 list_display
部分的一半。)