django - 如何根据模型值在 Django 管理图标中显示
问题描述
我需要在列表中的 Django Admin 中显示一个图标,并根据该值更改视图。
例如:
如果模型字段eventId
有值1
,则显示图标(png 或 webfont)
这可能吗?
模型:
class Events(models.Model):
eventId = models.CharField(_('EventID'), max_length=254, null=False, blank=False, default='', )
name = models.CharField(_('EventName'), max_length=254, null=False, blank=False, default='', )
euuid = models.UUIDField(_('UUID'), default=uuid.uuid4, editable=False, unique=True)
created = models.DateTimeField(_('Created'), auto_now_add=True, blank=True, help_text=_('Date of the creation'))
解决方案
您创建一个像icon()这样的方法并将其添加到 list_display、fields 并将其设置为只读。
from django.utils.html import format_html
class EventsAdmin(admin.ModelAdmin):
...
...
list_display = ['your_list_display_fields', 'icon']
fields = ['your_model_fields_for_form', 'icon']
readonly_fields = ['icon']
def icon(self, obj):
if obj.eventId == 1:
icon_url = '<your_icon_url>' # get icon url
return format_html('<img src="{}">', icon_url)
return None
推荐阅读
- go - golang:具有可变数量接口参数的函数
- python - 如何用该 DataFrame 中的另一列覆盖 PySpark DataFrame 中的现有列?
- scala - scala 类实例能否生成未在其构造函数中定义的变量?
- reactjs - 配置 Amplify 以使用现有的 Cognito 令牌
- javascript - WebView2:在 C# 中从 Javascript 代码设置对象属性
- excel - 在没有安装 excel 的情况下使用 VB.NET 读取 Excel
- regex - 正则表达式不像预期的那么贪婪 /^(\d+)[^_]/
- python - Python通过指向一个特定的字符串来分割一组字符
- applescript - 使用 AppleScript 在 Apple Mail 中使用现有的 google 帐户登录
- java - 尝试将属性添加到 application.properties 文件