Django: 'current_tags' n'est pas valide bibliothèque de balises
J'ai un petit projet Django, j'ai reçu d'un ami. Le code fonctionne parfaitement sur son système. Cependant, sur mon système, je reçois le message d'erreur suivant lorsque vous exécutez le serveur:
TemplateSyntaxError à /
'current_tags' n'est pas valide bibliothèque de balises: Modèle de la bibliothèque current_tags pas trouvé, essayé de django.templatetags.current_tags
Le problème, c'est avec une ligne dans un fichier html:
{% load current_tags %}
Exactement le même code fonctionne sur son système sans erreurs. Ce pourrait-ce être?
- Dans l'intérêt de sauver d'autres les 20 minutes que j'ai passé l'enracinement à travers ces questions: si vous venez de créer vos étiquettes personnalisées fichier (ce est votre première balise personnalisée dans une application donnée), vous aurez besoin de redémarrer le serveur de développement de Django, de sorte qu'il peut ramasser le nouveau fichier. Cette erreur s'affiche lorsque c'est votre seul problème aussi.
- Merci Jésus.
- n'oubliez pas de redémarrer le dev-serveur
Vous devez vous connecter pour publier un commentaire.
Je vous suggère les suivantes:
(Le plus probable) Vous n'avez pas installé l'une des dépendances de votre bibliothèque de balises. Vérifiez les importations à l'intérieur de la
current_tags.py
module.Assurez-vous que l'application qui inclut la bibliothèque de balises est enregistré dans
settings.py
sousINSTALLED_APPS
.Assurez-vous que vous pouvez réussir à l'importation de la bibliothèque de balises.
Cela se résume à quoi le lien suivant recommande, qui est que l'erreur elle-même tend à vous induire en erreur sur l'endroit où il est à la recherche d'un modèle à partir. Il ignore silencieusement erreurs lors de l'importation, ce qui signifie
current_tags.py
peut elle-même avoir une erreur de syntaxe ou une autre raison pourquoi il soulève ImportError.Si tout le reste échoue, suivez ce lien:
http://www.b-list.org/weblog/2007/dec/04/magic-tags/
J'ai eu ce problème et résolu par l'ajout d'un vide
__init__.py
fichier dans mon appname/templatetags/annuaire.Possibilités sont nombreuses:
Redémarrer le serveur a résolu le problème pour moi. Ils doivent avoir mentionné dans la documentation.
J'avais la même erreur, mais pour une raison différente donc je vais vous dire (au cas où quelqu'un d'autre vient le même problème).
J'avais tout droit, mais j'ai eu ma balise personnalisée à l'intérieur d'un dossier nommé
template_tags
et après une longue recherche j'ai trouvé qu'il avait àtemplatetags
, et maintenant ça fonctionne. Donc vérifier le nom du dossier est exactementtemplatetags
.supposons que vous avez la structure suivante:
-- Application_Name
-------templatetags
--------------init.py
--------------templates_extras.py
-------init.py
-------settings.py
-- manage.py
Vous devez vous assurer de ce qui suit:
votre application elle-même à l'intérieur de laquelle votre "templatetags" est un résident est en fait installé dans INSTALLED_APPS dans settings.py (par exemple, "Application_Name")
votre balise module lui-même qui existe à l'intérieur "templatetags" est déjà installé dans INSTALLED_APP dans settings.py (par exemple, "ApplicationName.templatetags.tempaltes_extras")
garder assurez-vous d'avoir "init.py" sous templatetags répertoire
vous devez redémarrer le serveur
Dans certains cas, vous devez supprimer toutes les générées *.pyc si elle ne fonctionne pas, réessayez de nouveau
"balises personnalisées" n'est pas une étiquette valide erreur de bibliothèque, le plus souvent, est survenu en raison de la coutume balises ne sont pas chargés dans l'application.
place vide init.py à l'intérieur du même dossier où votre "modèle personnalisé tag" est mise en place et exécuter le code ci-dessous sur le terminal pour charger le modèle personnalisé tags
Veuillez vous assurer que votre templatetags dossier est initialisé avec python, si vous êtes dans le doute, il suffit de prendre bakup de tous les fichiers,
De supprimer tous les fichiers,
À l'intérieur de templatetags dossier de créer init.py fichier uniquement,
ensuite, redémarrez votre serveur,
Maintenant votre dossier est sous Python, puis de faire de votre stuff.
Cela fonctionne pour moi...
Pour moi, c'était l'erreur de mettre des guillemets autour du nom de la bibliothèque dans
load
tag.MAL:
{% load 'library_name' %}
CORRECT:
{% load library_name %}
Se référer à d'autres réponses aussi. J'ai résolu un couple de ces problèmes avant d'atterrir ici.
Pour les autres face à cette . Supposons que le nom de votre Appli est
MyApp
et votre étiquette de nom de dossier esttemplatetags
puis danssettings.py
, vous devriez avoir :À la fois votre django app et votre balise dossier qui est sous votre package d'application sont nécessaires là.
Et dans votre fichier de modèle :
Aussi
app_filters.py
être comme :vérifier toutes les étapes ci-dessus et vous pouvez trouver le problème.
Assurez-vous que le
load
instruction est correcte. Il doit être le nom du fichier, pas le nom de l'application. Par exemple, si vous disposez de cette application:Alors vous devriez vous mettre dans votre modèle:
De sûr, vous devriez vérifier les autres réponses aussi.
Après avoir créé la balise de modèle et elle doit être dans le " templatetags d'un paquet à l'intérieur d'une application installée sur l'appareil dans les paramètres.INSTALLED_APPS, assurez-vous de redémarrer votre dev-serveur.
Peut-être que quelqu'un va trouver cela utile: d'une certaine façon j'avais nommé le répertoire
'templatetags '
au lieu de'templatetags'
, c'est -- avec un espace à la fin. A pris des heures pour enfin réaliser.Tous les conseils énumérés ici ne m'a pas aidé. Donc dans mon cas précis, le problème était que le templatetag devait être chargé à partir d'une application tierce, et j'ai copié manuellement dossier source avec cette application en
src
dossier dans mon virtualenv. Ensuite, j'ai courupython setup.py install
à l'intérieur de ce dossier. Après que django n'a pas pu charger ce module.Puis j'ai enlevé la source et le dossier installé cette application et installé à l'aide de
pip install -r requirements.txt
après l'ajout d'une ligne dansrequirements.txt
fichier. Il a été téléchargé dans lesrc
dossier, installé et tout a commencé à travailler correctement. Espérons que cela aide quelqu'un.Dans mon cas
J'ai créé bibliothèque de l'instance à l'aide de tag variable au lieu de registre variable
Mais il devrait être
Dans mon cas, le problème a été,
J'ai été en utilisant
{% load filter_method_name %}
J'ai dû changer de
{% filename %}
Dans mon cas, c'était - je suis en utilisant
J'ai oublié de créer ce modèle et tout de suite il a commencé à travailler. Je sais réponses ci-dessus sont plus liés à la plupart des questions espoir, mais peut-être que quelqu'un la trouver utile. Il doit avoir obtenu pour moi:
mais il n'a pas et cela a fonctionné.