2010-12-13 26 views
0

Je suis nouveau sur Django et jQuery, mais j'ai beaucoup d'expérience en python. Essentiellement, j'essaye d'écrire un formulaire HTML, avec une zone de texte pour l'instant, qui, lorsque vous le saisissez, affiche les options de complétion automatique. cela sera utilisé pour trouver des restaurants, et j'ai l'intention d'utiliser l'API Yelp pour cela. Quelqu'un peut-il me signaler dans une direction d'un tutoriel sur la façon de le faire - en particulier en ce qui concerne le Django/HTML/jQuery plutôt que de savoir comment travailler avec l'API Yelp? Y a-t-il des tutoriels que je devrais lire? Tous les tutoriels que j'ai trouvés sont très basiques et construisent des formes à partir des modèles de données Django.Saisie semi-automatique avec Django, jQuery et google app engine

Merci!

Répondre

0

Vous pouvez accomplir facilement ce sur le côté client en utilisant le widget Autocomplete qui fait partie de jQueryUI. Donc, dans votre cas, vous feriez quelque chose comme:

<input id="restaurantSearch" /> 

<script> 
$(document.ready(function() { 
    $('#restaurantSearch').autocomplete({ 
     source: function(req, add){ 
      $.getJSON('http://api.yelp.com/v2/search?term=?', req, function(data) { 

      var restaurantSuggestions = []; 

      $.each(data.businesses, function(i, business){ 
      restaurantSuggestions.push(business.name); 
      }); 

      add(restaurantSuggestions); 
     }) 
}); 
</script> 
1

C'est ce que vous pouvez utiliser pour éviter de réinventer la roue. Je l'ai utilisé pour une auto-complétion Vous avez une vidéo Relation ForeignKey:

django-smart-selects

0

Je préfère personnellement django ajax selects mais d'accord avec ce qui précède ne pas réinventer la roue

2

Code de Tomlog fonctionnera sur le client. Mais la question nécessite spécifiquement google-app-engine côté serveur.

Pour implémenter le composant GAE côté serveur, vous devez rechercher des chaînes avec des expressions régulières (ou au moins une variante édulcorée). GAE ne fournit pas actuellement une telle fonctionnalité pour le magasin de données; les chaînes ne sont consultables que pour l'égalité. En d'autres termes, si vous avez une grande banque de données contenant 'apple' et 'orange', vous ne pouvez PAS compléter automatiquement 'app' ou 'ora'.

Il y a eu des murmures que google ajoutera de telles fonctionnalités, mais je ne compterais pas bientôt. Par conséquent, si vous souhaitez effectuer une saisie semi-automatique sur un grand ensemble de données, GAE ne fonctionnera pas encore pour vous.

(vous pouvez bien sûr construire votre propre système d'indexation au-dessus de GAE, mais je devine qu'il est hors de question)