Je ne fais que commencer avec Python, et je suis bloqué sur la syntaxe dont j'ai besoin pour convertir un ensemble de paramètres request.POST à la syntaxe de requête de Solr.Traduire un dict python en une chaîne de requête Solr
Le cas d'utilisation est une forme définie comme ceci:
class SearchForm(forms.Form):
text = forms.CharField()
metadata = forms.CharField()
figures = forms.CharField()
Sur présentation, le formulaire doit générer une chaîne codée url à passer à un client d'URL qui ressemble à ceci:
text:myKeyword1+AND+metadata:myKeyword2+AND+figures:myKeyword3
On dirait qu'il devrait y avoir un moyen simple de le faire. Le plus proche que je peux obtenir est
for f, v in request.POST.iteritems():
if v:
qstring += u'%s\u003A%s+and+' % (f,v)
Cependant, dans ce cas, le côlon (\ u003A) génère une erreur Solr parce qu'il ne reçoit pas codé correctement.
Quelle est la manière propre de faire ceci?
Merci!
Excellente solution, merci! Juste pour noter, je pense que les nouvelles versions de python utilisent "clean_data" au lieu de "clean_data". Je ne sais pas si c'est exact cependant. – andyashton
votre droit, c'était une faute de frappe. J'ai corrigé ma réponse originale – buckley