J'ai un modèle de citation dans mon admin Django, que j'ai mis en place une classe d'admin avec un affichage de la liste de certains de ses champs. L'un de ces champs est un «identifiant de partenaire». J'ai plusieurs fichiers de paramètres différents qui s'étendent à partir d'un fichier de paramètres de base pour l'environnement dans lequel je suis. Dans ces fichiers de paramètres, il existe une variable SHOW_PARTNER_ID. Je veux être en mesure de supprimer partner_id de l'affichage de la liste si SHOW_PARTNER_ID est défini sur false, et vice versa. J'ai une méthode qui retourne une chaîne vide pour chaque ligne de la table de citation qui n'a pas d'identifiant de partenaire, mais je préfère simplement supprimer complètement la colonne.Comment exclure de manière conditionnelle les éléments d'affichage de la liste d'administration de django
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 ''
Ah ! Solution solide, merci schwobaseggl:) – JBT
Comme les pères fondateurs prévu;) – schwobaseggl