2017-12-28 11 views
1

Ich lerne Django eine Website mit einer Suchmaschine zu bauen. Ich habe nur Dokumentation für die Volltextsuche gefunden. Ich versuche jedoch, eine Suche basierend auf Keywords/Tags zu implementieren, die ich jedem Element hinzufüge.Django Tags/Stichwörter basierend Suche

Zum Beispiel, wenn ein Benutzer Fleisch sucht, werden alle Fleischprodukte wie Huhn, Rindfleisch, Schinken, auftauchen. Elemente können auch mehrere Schlüsselwörter haben.

Also wie implementiere ich so etwas; Gibt es ein Tool oder eine App, die ich verwenden kann? Ich würde auch einen Link zu der Dokumentation lieben.

+0

kefek bassam, das zu einfach ist, brauchen Sie keine zusätzliche App oder Werkzeug benötigen, nur einen Blick und HTML-Formular wird dies erreichen :) meine Antwort –

+0

bye sehen die So können Sie eine automatische Vervollständigung suchen [lesen] (http://setthecode.pythonanywhere.com/post?id=18) –

Antwort

0

kann die Filterung wie folgt erfolgen:

.filter(tags__icontains=data) 

die __icontains ist, was Sie hier für

sind Loking ein einfaches Tutorial :)

erste lässt die HTML-Eingabe erstellen, die Sie Geben Sie die Suchbegriffe ein.

<form action="/search/"> 
<label for="search"></label> 
<input type="text" name="q" id="search"> 
<button type="submit">Search!</button> 
</form> 

jetzt das wird die Benutzerdaten auf einen Blick senden, die damit umgehen wird, lässt es so schaffen

URL zuerst:

url(r'^search/', views.search) 

Ausblick:

def search(request): 
    data = request.GET.get('q') 
    return render(request, 'path-to-template-that-will-show-the-search-result', {'objects': YourModel.objects.filter(YourTagField__icontains=data)}) 

die Ergebnisvorlagen sollten in etwa so aussehen:

<ul> 
{% for obj in objects %} 
<li>{{obj.some_title_field}}</li> 
{% endfor %} 
</ul> 

hoffe, es hilft Ihnen :)