Suche über mehrere Felder in Django
Ich versuche zu bauen, ein Suchsystem, und ich möchte, dass die Suche nach mehreren Feldernname, state, city,
in meinem django-Modelle. Ich schrieb den code unten, aber ich habe nicht in der Lage, um herauszufinden, wie Sie gehen über es.
Modelle:
class Finhall(models.Model):
user=models.ForeignKey(User)
name=models.CharField(max_length=250, unique=True)
address=models.CharField(max_length=200)
city=models.CharField(max_length=200)
state=models.CharField(max_length=200)
def __unicode__(self):
return u'%s' % (self.name)
Views.py
def hup_find(request):
if ('q' in request.GET) and request.GET['q'].strip():
query_string=request.GET.get('q')
seens=Finhall.objects.filter(name__icontains=query_string)
else:
seens=None
return render_to_response('find.html',{'seens':seens},context_instance=RequestContext(request))
Vorlage:
{% block content %}
<body>
<form action="" method="GET">
<input type="text" name="q" />
<button type="submit">search</button>
</form>
{% for seen in seens %}
<p> {{seen.name}}</p>
{% empty %}
<p> no search </p>
{% endfor %}
</body>
{% endblock %}
Wie kann ich dies angehen? Ich möchte nicht haysatck aufgrund persönlicher Gründe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie django
Q
Objekten zu tunOR
Abfrage,oder wenn Sie wollen
AND
Ihre Fragen zusammen, verwenden Sie einfach die aktuelle lookups als kwargsseens=Finhall.objects.filter(name__icontains=query_string, address__icontains=query_string)
Sollten Sie sich wirklich überlegen, Volltextsuche oder
haystack
(das macht die Suche leicht), weilicontains
Probleme ein%LIKE%
die nicht aus der Ferne skalierbareEDIT: Gerade bemerkt, es ist Postgres nur
Offenbar in django 1.10 SearchVector Klasse Hinzugefügt.
Nutzung von Google docs:
Suchen gleichen text in mehrere Felder, die Sie verwenden können, dieses :