只有在Django中将bool设置为true时才显示

时间:2013-07-30 14:22:40

标签: python django boolean admin

在admin.py中

class PurchaseOrderAdmin(admin.ModelAdmin):
    list_display = ('confirmed', 'po_number')

我想把它放到哪里,只有当“确认”设置为True时才会显示po_number。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

添加到您的班级:

class PurchaseOrder(models.Model):
    ... your fields ...

    def get_po_number(self):
        return self.po_number if self.confirmed else ''
    get_po_number.short_description = 'po_number'

在list_display

中从'po_number'更改为'get_po_number'

答案 1 :(得分:1)

该列将始终显示,但如果您想显示空白文本或某些内容,则可以尝试以下内容:

list_display = ('confirmed', 'get_po_number')

def get_po_number(obj):
    if obj.confirmed:
        return obj.po_number
    else:
        return 'some text'
get_po_number.short_description = 'po number'