1 votes

balisage jquery autocomplete

Quelqu'un peut-il me dire comment utiliser l'autocomplétion de balises dans les modèles django ?

J'ai fait cela dans l'interface d'administration de Django mais je ne sais pas comment le faire dans le modèle.

Merci d'avance

2voto

gath Points 4992

Dans mon modèle, j'ai ce code :

$(document).ready(function(){
  $("#tags1").autocomplete("/taglookup/", {
        width: 320,
        multiple: true,
        multipleSeparator: " "
         });
   }

et sur mon url.py j'ai ceci sur le tuple urlparttern, cela peut être n'importe quoi selon la façon dont vous voulez relier vos vues et vos urls !

(r'^taglookup/$', 'twine.twineapp.views.tag_lookup')

et dans mon views.py, la vue tag_lookup est implémentée comme suit :

def tag_lookup(request):
    # Default return list
    results = []
    if request.method == "GET":
        if request.GET.has_key(u'q'):
            value = request.GET[u'q']
            # Ignore queries shorter than length 2
            if len(value) > 2:
               TI = Tag.objects.filter(name__startswith=value.lower())
               results = [ x.name for x in TI]
    return HttpResponse('\n'.join(results), mimetype='text/plain')

PS : J'utilise le Étiquetage C'est pourquoi j'ai l'objet Tag dans le code ci-dessus.

2voto

Ludwik Trammer Points 7794

Vous pourriez utiliser mon application réutilisable django-tagging-autocomplete et tirez parti du widget de formulaire TagAutocomplete fourni. Vous pouvez en savoir plus sur l'utilisation du widget dans la documentation sous la rubrique "Utilisation du widget de formulaire".

Veuillez noter que l'application exige que vous utilisiez django-tagging pour vos balises. Vous devez également mettre {{ form.media }} (où "form" est le nom de votre formulaire) dans le champ <head> dans votre modèle, pour permettre au widget d'inclure ses fichiers JavaScript.

1voto

PhoebeB Points 2862

Ceci provient d'un modèle où j'ai implémenté l'autocomplétion.

$(document).ready(function() {

    $("#searchbox").autocomplete('/search_stuff/', {
        width: 300,
        multiple: false,
        matchContains: true,
        delay: 900,
        extraParams: {
               s: function() { return $("#status").val(); }
        }
});

Où search_stuff renvoie une liste textuelle de tous les éléments qui correspondent aux critères. Cela vous aide-t-il ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X