Désolé ou le titre déroutant! C'est en fait beaucoup plus simple que ça en a l'air.Fonction de contexte de modèle Django sans courir automatiquement
J'ai une fonction:
def get_messages(request):
# do something expensive with the request
return 'string'
Je veux être en mesure d'appeler cette fonction à partir du modèle, donc j'ai sanglé avec un processeur de contexte:
def context_processor(request):
return {'messages':get_messages(request)}
Alors maintenant quand j'ai {{messages}}
dans mon modèle, string
imprime. Génial.
Le problème est est assez cher et n'est pas toujours nécessaire. Moins de la moitié des modèles en ont besoin. Existe-t-il un moyen de passer la fonction au modèle et de le laisser au modèle s'il s'exécute ou non?
J'ai essayé déjà:
def context_processor(request):
return {'messages':get_messages}
Mais que juste sorties de la description de la fonction <function get_messages at 0x23e97d0>
dans le modèle au lieu de l'exécuter.
Cette solution juste me vint à l'extérieur tout en ayant une cigarette pensive. Je ne prends pas de crédit, mais je dis simplement: je suis entièrement d'accord. Cela ressemble à la meilleure solution disponible! – Oli