Nach ausgiebiger Recherche (Googeln) kann ich kein aktuelles Tutorial finden, wie man Autocomplete mit Django und jQuery einrichtet. Es scheint eine Vielzahl von Plugins zu geben, und es scheint keine Einheitlichkeit oder keinen Standard dafür zu geben, welche zu verwenden sind und wann.
Ich bin kein Profi in Django oder jQuery, brauche aber eine Autocomplete-Lösung, die gut dokumentiert und ziemlich einfach zu verwenden ist.
Hallo, können Sie erklären, wo ich das hinstellen kann /search.json Datei?
– Roll
7. September 2016 um 2:09 Uhr
Ich verstehe nicht, warum die Leute es überhaupt mit Django-Autocomplete versuchen. Ich habe ungefähr zwei Stunden damit verschwendet, es zum Laufen zu bringen. Das ist viel besser und gibt Ihnen viel mehr Kontrolle über Ihren Code.
– Braden Holt
6. Februar 2018 um 20:03 Uhr
Inzwischen ist ein gutes Tutorial erschienen.
autocomplete erledigt alles für Sie, Sie müssen lediglich Folgendes tun:
Tutorium befolgt. Obwohl Ergebnisse zurückgegeben werden, werden sie nicht im Dropdown-Menü unter der Eingabe angezeigt. Siehe meine Frage hier: stackoverflow.com/questions/31617931/…
– KhoPhi
24. Juli 2015 um 19:37 Uhr
Es dauerte auch eine Weile, bis es funktionierte, und eine zusätzliche Frage in SO. Nachdem ich herausgefunden hatte, wie es geht, habe ich versucht, eine Schritt-für-Schritt-Erklärung zu erstellen, die hoffentlich für andere nützlich sein wird.
– J0ANMM
14. Februar 2017 um 16:03 Uhr
Wenn Ihr Eingabefeld „Suchfeld“ in einem Formular wäre, wie würden Sie es machen?
– Ganesh Jadhav
14. September 2019 um 11:13 Uhr
@GaneshJadhav – Konnten Sie eine Antwort auf Ihre Frage finden? Ich stehe vor einem ähnlichen Problem. Habe hier eine Anfrage gestellt. Es wäre schön, Ihre Meinung dazu zu erfahren.
– Liebe Putin
9. Januar 2020 um 18:36 Uhr
revliscano
Angenommen, Sie möchten die automatische Vervollständigung für ein Eingabefeld einrichten (z <input type="text" id="id_input">) mit dem Benutzernamen Ihrer Benutzer. So habe ich es gemacht:
urls.py
Fügen Sie zunächst eine URL hinzu, die vom AJAX-Aufruf verwendet wird.
Stellen Sie dann eine Ansicht ein, um die Informationen (dh in diesem Fall die Benutzernamen) aus der Datenbank abzurufen
from django.http import JsonResponse
def autocomplete(request):
if request.is_ajax():
username_query = request.GET.get('username_query', '')
usernames = (User.objects
.filter(username__startswith=username_query)
.values_list('username', flat=True))
data = {
'usernames': usernames,
}
return JsonResponse(data)
JavaScript
Schließlich müssen Sie eine JavaScript-Funktion erstellen, die zur Datenbank geht und jedes Mal, wenn Sie eine Taste drücken (und loslassen), die Benutzernamen zurückgibt, die mit dem Wert des Eingabefelds übereinstimmen. Dafür werden wir verwenden Ajax, JQuery und die JQuery-uidie Autocomplete-Funktion von
jQuery(function() {
$("#id_input").on('keyup', function(){
let value = $(this).val();
$.ajax({
url: "{% url 'ajax_autocomplete' %}",
data: {
'username_query': value
},
dataType: 'json',
success: function (data) {
let usernames = data.usernames;
$("#id_input").autocomplete({
source: usernames,
minLength: 3
});
}
});
});
});
Und das ist es! Weitere Informationen finden Sie hier Lernprogramm
Ich bin ein großer Fan von Django-Autocomplete: https://bitbucket.org/tyrion/django-autocomplete/wiki/Home . Es hat ein nettes Plug-and-Play und ist sehr einfach mit Ihren eigenen Apps ohne viel zusätzliches Codieren zu integrieren.
Alouani Younes
Ich weiß, dass die Implementierung der automatischen Vervollständigung von jQuery schwierig ist. Hier ist ein funktionierendes Beispiel für Django > 2.0:
Schritt 1: Erstellen Sie ein einfaches HTML mit einer Eingabe (vergessen Sie nicht, Links hinzuzufügen, um jQuery und jquery-ui zu laden). Speichern Sie den Code als testsearch.html
Schritt 2: Fügen Sie dem HTML-Code einen JavaScript-Code hinzu. Es ruft die Funktion autocomplete von jquery-ui auf. Diese Funktion verwendet eine Quelle, die die URL für Ajax aufruft
Schritt 3: Jetzt müssen wir zwei Funktionen erstellen. Eine einfache Funktion zum Rendern von testsearch.html und eine andere, die Ajax-Aufrufe empfängt und Daten zurücksendet.
Um dasselbe dynamischer zu machen, können wir nun einen einfachen jQuery-Ajax-Aufruf zu einer Django-Ansicht hinzufügen.
var countries;
$.ajax({
url : '/autocomplete_view';
data : {'query':$('#query').val()};
type : 'GET',
success : function(response){
countries = JSON.parse(response);
// do something extra
},
failure : function(response){
// do something here
},
async : false
});
10986500cookie-checkDjango, jQuery und automatische Vervollständigungyes
Sehen: Auto-Complete-Pakete für Django
– kenorb
19. Mai 2015 um 12:48 Uhr