Je suis passé par le processus (pénible) d'écriture d'un tag de modèle personnalisé à utiliser dans Django. Il est enregistré comme inclusion_tag afin qu'il rende un template. Cependant, cette étiquette se brise dès que j'essaie de changer quelque chose.Les balises de modèle Django sont-elles mises en cache?
J'ai essayé de changer le nombre de paramètres et de changer les paramètres en conséquence quand il est appelé. Il est clair que le nouveau code d'étiquette n'est pas chargé, car une erreur est émise indiquant qu'il y a une discordance dans le nombre de paramètres, et il est évident qu'il essaie d'appeler l'ancienne fonction.
Le même problème se produit si j'essaie de modifier le nom du modèle en cours de rendu et de modifier en conséquence le nom du modèle sur le disque. Il continue à essayer d'appeler l'ancien modèle. J'ai essayé d'effacer les anciens fichiers .pyc sans aucune chance.
Dans l'ensemble, le système agit comme s'il mettait en cache les balises de gabarit, probablement en raison de la commande register
. J'ai creusé à travers des discussions sans fin essayant de savoir si c'est le cas, mais tous pourraient trouver James Bennett déclarant here que register
ne fait rien. S'il vous plaît aider!
Le processus a été douloureux parce que j'ai rencontré l'erreur décrite ici sous "magie", qui a pris beaucoup de temps à déboguer: http://www.b-list.org/weblog/2007/dec/04/magic-tags/Il s'avère que le soi-disant ImportError a été passé en revue parce que mon nouveau répertoire templatetags/avait un fichier __init__.py vide. Il a besoin d'au moins un personnage. Qui savait. L'étiquette est en effet trois lignes, ce qui ne fait qu'ajouter à la frustration. Code que simple ne devrait pas casser! Vous avez absolument raison à propos du serveur de développement Django. Il recharge les changements de façon si constante que je ne l'ai pas considéré comme un point d'échec. – thebossman