utilisation variable javascript dans django template
J'ai un modèle personnalisé balise qui récupère une liste de pays, plus d'un web appel à des services web SOAP et remplit html sélectionnez tag. Maintenant j'ai un autre modèle de balise qui affiche une liste de choix pour le pays donné, et,bien évidemment, il prend le nom de pays en tant qu'argument. Donc, je peux passer le nom du pays et la deuxième balise personnalisée seulement après onchange événement est déclenché sur le code html balise select, et j'ai le nom du pays comme une variable javascript choisie par l'utilisateur. Comment pourrais-je passer cette valeur à l'personnalisées balise de modèle?
Voici mes balises personnalisées
from mezzanine import template
from suds.client import Client
register = template.Library()
@register.as_tag
def get_countries(*args):
url = 'http://www.sendfromchina.com/shipfee/web_service?wsdl'
client = Client(url)
countries = client.service.getCountries()
countries = map(lambda x: x._enName, countries)
return countries
@register.as_tag
def get_available_carriers(weight,country,length,width,height):
url = 'http://www.sendfromchina.com/shipfee/web_service?wsdl'
client = Client(url)
rates = client.service.getRates(weight,country,length,width,height)
rates=map(lambda x: (x._shiptypecode, x._totalfee), rates)
return rates
Voici mon code html sélectionnez tag
<select id='countrylist' onchange="getOption(this)">
{% get_countries as countries %}
{% for country in countries %}
<option>{{ country }}</option>
{% endfor %}
<select>
Et enfin, voici mon javascript
<script type="text/javascript">
function getOption(sel){
var country = sel.value;
{% get_available_carriers 1 country 10 10 10 as carriers %}
console.log('{{ carriers }}')
}
</script>
Je n'arrive pas à passer pays js variable get_available_carriers
tag
Toute aide est très appréciée! Grâce
Merci pour votre commentaire, j'ai juste édité pour ajouter du code.
OriginalL'auteur david Kartashyan | 2014-05-27
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas à passer la valeur à partir de la fonction javascript de django balise de modèle. Mais dans ce cas, vous pouvez utiliser les appels ajax.
http://www.tangowithdjango.com/book/chapters/ajax.html
https://bradmontgomery.net/blog/2008/11/24/a-simple-django-example-with-ajax/
Mise à jour:
Voir ce que vous pouvez comprendre ce qu'il se passe.
Comment passer des variable javascript pour django filtre personnalisé
Espère que cela est utile idée.
C'est presque un lien seule réponse... attention la prochaine fois et essayez de développer votre post avec les et des ressources utiles.
Salut @MaximeLorant sa posant aucune idée.J'ai donné mon idée de référence et liens de référence pour l'apprentissage. Est aucun problème avec stackoverflow ?.
Si les deux premiers liens disparaît un jour, votre réponse ne sera pas plus utile. La politique est de citer la partie pertinente de la page dans la réponse elle-même ou, mieux, d'adapter l'exemple de la page pour le cas actuel. Vous n'avez à répondre à la question "Pourquoi il ne parvient pas?", mais la question du "Comment?" a été répondu par l'intermédiaire de liens. Voir stackoverflow.com/help/how-to-answer
Salut @MaximeLorant merci pour la suggestion fort utile. Je ne vais pas répéter ce.
OriginalL'auteur dhana
Django modèles sont construits sur le côté serveur, lors de la génération de la page, tandis que le JavaScript est exécuté sur le côté client, quand il est nécessaire. Ainsi, Django et Javascript ne peut pas partager des objets/données.
Dans votre page, avec le courant de Javascript, vous aurez quelque chose comme:
Ce que vous avez besoin est de générer la liste de votre point de vue et le retour d'un
carrier
objet déjà construit. Avec un peu de chance, vous pourriez être en mesure de l'utiliser en Javascript.Le meilleur moyen est encore de faire une requête AJAX pour obtenir cette liste:
et de le faire avec jQuery (si vous l'utilisez):
N'oubliez pas de définir le modèle d'URL, avec la
get_available_carriers
dans mon exemple.OriginalL'auteur Maxime Lorant