【发布时间】:2017-07-26 13:37:35
【问题描述】:
我在我的 Django 管理员中有一个报价模型,我为它设置了一个管理员类,其中包含一些字段的列表显示。这些字段之一是“合作伙伴 ID”。对于我所处的任何环境,我都有多个从基本设置文件扩展而来的不同设置文件。在这些设置文件中,有一个 SHOW_PARTNER_ID 变量。如果 SHOW_PARTNER_ID 设置为 false,我希望能够从列表显示中删除 partner_id,反之亦然。我有一个方法,它为没有合作伙伴 ID 的报价表的每一行返回一个空字符串,但我宁愿完全删除该列。
class QuoteAdmin(admin.ModelAdmin):
list_display = ('date', 'device_model', 'first_name', 'last_name', 'customer_address', 'customer_link',
'customer_history', 'site_name', 'status', 'partner_id')
def partner_id(self, obj):
from django.conf import settings
try:
if settings.SHOW_PARTNER:
if obj.partner:
return u'<a href="/admin/quote/partner/{}/">{}</a>'.format(obj.partner.id, obj.partner.id)
else:
return ''
else:
return ''
except Exception as e:
logging.error(e)
return ''
【问题讨论】: