2010-02-24 5 views
3

J'ai une application Django simple qui a une variété de vues de différents types d'actifs. J'ai diverses fonctions jQuery qui touche au large du nom du type d'actif et donc quand je produis la page en utilisant le modèle de django utiliser une variable de modèle pour remplir le paramètre de type d'actif dans le code javascript ...Passer des paramètres au code Javascript sur une page en utilisant des modèles django?

$(document).ready(function() 
{ 
    $(".project").click(function() {return FiltersChanged('{{ asset_type }}', $('#filter_entry').val());}); 
}); 

I J'utilise beaucoup ce type de paradigme dans l'application et cela me semble un peu gênant, je trouve que je crée beaucoup de code dupliqué dans différents fichiers modèles simplement parce que je dois remplir ce {{asset_type }} variable et j'aimerais pouvoir réduire la duplication et ne pas avoir besoin de générer ce code dans le template à chaque fois. Donc, y a-t-il une meilleure façon de faire cela qui ne nécessite pas de dupliquer le code dans chaque page?

+0

Dupliquer: http://stackoverflow.com/questions/1445989/passing-python-data-to-javascript-via-django –

Répondre

2

Pour les valeurs couramment utilisées, une option consiste à placer une partie de votre modèle dans un objet disponible dans le monde entier, puis vos scripts peuvent accéder aux valeurs de cette manière. Par exemple, vous pouvez faire quelque chose comme ceci:

<script> 
    body.data('assetInfo', { 
    'type': '{{ asset_type }}', 
    // ... 
    }); 
</script> 

Ensuite, vos scripts peuvent simplement aller à l'élément de données « assetinfo » sur l'étiquette du corps quand ils ont besoin ce genre de choses. C'est bien quand vos scripts peuvent être libérés du code côté serveur car vous pouvez laisser les clients les mettre en cache.

Questions connexes