Sono un Django novizio, cercando di creare un modulo "Ricerca" per il mio progetto utilizzando MySql con motore MyISAM. Finora, riesco a far funzionare il modulo, ma Django non sembra cercare tutti i campi allo stesso modo. I risultati sono casuali Esempio: Ricerca in region
restituisce alcun risultato o di ricerca peggiore description
funziona bene, mentre howtogetin
non sembra applicare ..Come posso effettuare la ricerca di Django in più campi utilizzando QuerySets e MySql "Ricerca di testo completo"?
Ecco il mio modello:
class Camp(models.Model):
owner = models.OneToOneField(User)
name = models.CharField(max_length=100)
description = models.TextField()
address1 = models.CharField(max_length=128)
address2 = models.CharField(max_length=128)
zipcode = models.CharField(max_length=128)
region = models.CharField(max_length=128)
country = models.CharField(max_length=128)
phone = models.CharField(max_length=60)
howtogetin = models.TextField()
def __str__(self):
return self.name
Qui è la mia opinione:
def campsearch(request):
if request.method == 'POST':
form = CampSearchForm(request.POST)
if form.is_valid():
terms = form.cleaned_data['search']
camps = Camp.objects.filter(
Q(name__search=terms)|
Q(description__search=terms)|
Q(address1__search=terms)|
Q(address2__search=terms)|
Q(zipcode__search=terms)|
Q(region__search=terms)|
Q(country__search=terms)|
Q(howtogetin__search=terms)
)
return render(request, 'campsearch.html', {'form':form, 'camps':camps})
else:
form = CampSearchForm()
return render(request, 'campsearch.html', {'form':form})
Qualsiasi indizio?
Ho visto qualcosa di simile su internet ma non riesco a capire come funziona. L'hai provato? puoi spiegare perché è un'implementazione migliore dell'implementazione predefinita di Django per ** search ** e ** incontains **? – adilbenseddik
Ciao adilbenseddik, sì ce l'ho nel mio progetto e funziona benissimo. Questo approccio è stato dato da Julien Phalip in http://julienphalip.com/post/2825034077/adding-search-to-a-django-site-in-a-snap –
Farò un tentativo. grazie per il riferimento. ancora, hai qualche idea su cosa non funziona con il mio codice? dovrebbe funzionare abbastanza fuori dagli schemi in base alla documentazione di Django. – adilbenseddik