在模型管理中将 Django 模型 @属性 显示为布尔值

Show Django Model @property as a bool in model admin

我有一个带有 property 的模型,它是 returns 布尔值,我想在 django 模型管理中将其显示为图标。

models.py

class Foo(models.Model):
    bar = models.TextField("Title", null=True, blank=True)

    @property
    def is_new_bar(self):
        return bar == 'NEW'

admin.py

class FooAdmin(admin.ModelAdmin):
    list_display = ('bar', 'is_new_bar') # is_new_bar is shown as True/False text, I want this as bool icon of django.

试试这个 property 使用。

def is_new_bar(self):
    return bar == 'NEW'
is_new_bar.boolean = True
is_new_bar = property(is_new_bar)

您可以将方法添加到您的 modeladmin 中,它将 return 属性 值并设置为 return 布尔值:

class FooAdmin(admin.ModelAdmin):
     list_display = ('bar', 'get_is_new_bar') 

     def get_is_new_bar(self, obj):
        return obj.is_new_bar
     get_is_new_bar.boolean = True