在django admin中动态地将类添加到特定字段的标签标签

时间:2014-10-13 10:14:42

标签: python django

我有这个模型。我正试图为' info'制作标签。字段更改背景颜色,如果已批准= True。 这是我的模型和管理文件

models.py

class MyModel(models.Model):
    name = models.CharField(max_length=100, unique=True)
    info = models.TextField(null=True, blank=True)
    approved = models.BooleanField(default=False)

admin.py

class MyModelAdminForm(forms.ModelForm):
    class Meta:
        model = MyModel


class MyModelAdmin(admin.ModelAdmin):
    form = MyModelAdminForm
    list_display = ('name', 'info', 'approved',)

    fieldsets = (
        (None, {
            'fields': ('name', 'info')
        }),

    )

1 个答案:

答案 0 :(得分:0)

试试这个:

class MyModelAdmin(admin.ModelAdmin):
    form = MyModelAdminForm
    list_display = ('name', 'info_colored', 'approved',)
    readonly_fields = ('info_colored',)

    fieldsets = (
        (None, {
            'fields': ('name', 'info', 'info_colored',)
        }),

    )

    def info_colored(self, obj):
        color = 'red'
        if obj.approved:
            color = 'green'
        return u'<b style="background:{};">{}</b>'.format(color, obj.info)
    info_colored.allow_tags = True
    info_colored.admin_order_field = 'info'