7
votes

Appeler la fonction Python "Dir" de Django Modèle ou PHP Print_R équivalent?

Est-ce que quelqu'un connaît une bibliothèque existante pour inspecter des éléments dans le modèle?

Je finis actuellement à cela dans la vue: p> xxx pré>

puis je peux inspecter La valeur de show_me dans la trace de pile de débogueur. P>

Cependant, c'est vraiment laid. J'aimerais pouvoir faire cette inspection dans le gabarit, comme se fait faire dans PHP avec le print_r p> xxx pré>

Je sais que cela n'existe pas dans la norme Django Bibliothèque de modèles, mais j'espère que quelqu'un a déjà écrit ce filtre de modèle afin que je puisse juste heureusement l'utiliser. p>

Comportements de bonus: P>

  • vérifie les paramètres.debug et soulève une erreur qui n'est pas piégée s'il est faux li>
  • enveloppe la sortie dans
    {% load development_show_me %}
    {{the_deets_on_this_object|show_them_to_me}}
    


0 commentaires

4 Réponses :


8
votes

Il a fini par être plus rapide pour écrire la fonction que d'écrire la question demandant si quelqu'un savait s'il existait s'il existait. XXX PRE>

Utilisation: P>

{% load helper_tags %}
{% template_dir field.field "field.field" %}

{% template_dir my_object "I'm looking at my_object" %}


1 commentaires

Vérifiez les paramètres.debug, juste au cas où vous n'oubliez jamais de supprimer {% template_dir%} avant d'aller à la production.



0
votes

Pas sûr, c'est ce que vous recherchez, mais Django a un filtre de modèle par défaut pprint . On dirait que ceci est print_r remplaceur.


0 commentaires

5
votes

dans django il y a beaucoup mieux que print_r :

  • Si le modèle se bloque, vous avez accès à toutes les variables dans le modèle de fiancé. Vous pouvez forcer cela par les paramètres {% url fjkdslmjfdklmfjlsmqk%} C'est comme un Super Print_R sur toutes les variables.

  • Vous pouvez installer django (extensions et Werkzeug , de cette façon, vous pouvez remplacer Runserver avec RunServer_Plus et obtenez la même page que celle que nous avons parlée, mais avec une coque Python interactive imbriquée à chaque ligne de la trace de la pile

  • Vous pouvez installer django_template_repl , qui vous permettra de commencer le débogueur à Analface dans le gabarit, sous la forme d'une coque Python ou d'une coque de modèle.

  • Vous pouvez installer le Barre d'outils Django-Debug Pour obtenir l'affichage de style print_r et bien plus encore dans une barre latérale JS invisible à quiconque mais vous.


1 commentaires

La barre d'outils Django-Debug-Tool est très puissante. Il montrera une vidage de toutes les variables sur le modèle. Mais je n'ai pas pu trouver comment cela permettrait d'explorer les objets dans les modèles cependant. Est-ce que je manque comment cela fonctionne?