【发布时间】:2010-02-04 21:53:08
【问题描述】:
我刚刚开始使用 Python,但我坚持将一组 request.POST 参数转换为 Solr 的查询语法所需的语法。
用例是这样定义的表单:
class SearchForm(forms.Form):
text = forms.CharField()
metadata = forms.CharField()
figures = forms.CharField()
提交时,表单需要生成一个 url 编码的字符串以传递给 URL 客户端,如下所示:
text:myKeyword1+AND+metadata:myKeyword2+AND+figures:myKeyword3
似乎应该有一个简单的方法来做到这一点。我能得到的最接近的是
for f, v in request.POST.iteritems():
if v:
qstring += u'%s\u003A%s+and+' % (f,v)
但是,在这种情况下,冒号 (\u003A) 会生成 Solr 错误,因为它没有正确编码。
这样做的干净方法是什么?
谢谢!
【问题讨论】: