HStore Value__包含Django 1.8中的搜索

时间:2015-06-23 15:38:36

标签: django django-queryset hstore django-1.8

我已经在Django.users上问了这个问题,但没有回应。我最近升级到Django 1.8以利用HStore字段的本机支持(不使用django-hStore),但遇到了这个问题。我不确定它是否是一个bug,或者是否有一种无证的方法可以做到这一点。

我正在尝试查找给定模型中的所有对象,其值为'在他们的HStore字段中包含字符。但是," __包含"仅当搜索到的项目与其值之间存在完全匹配时,搜索才有效。

从我自己的应用程序(我已删除了一些查询集结果,以便更容易阅读)

>>> query1
[<LanguageDatum: \xf0i, This (m), And, >, <LanguageDatum: hadi, This (f), AfgA, >, <LanguageDatum: -e, His, ArBah, >, '...(remaining elements truncated)...']
>>> query1.filter(multigloss__values__contains=["This"])
[]
>>> query1.filter(multigloss__values__contains=["This (f)"])
[<LanguageDatum: hadi, This (f), AfgA, >,  <LanguageDatum: \xf0i, This (f), ArAnz, >, '...(remaining elements truncated)...']
>>> query1.filter(multigloss__values__contains=["His"])
[<LanguageDatum: -e, His, ArBah, >, <LanguageDatum: -eh, His, ArBah, >, <LanguageDatum: -hu, His, Chd, >, <LanguageDatum: -u, His, Chd, > '...(remaining elements truncated)...']
>>> query1.filter(multigloss__values__contains=["Hi"])
[]

预期的结果是查询会返回任何数据,其中包含多个数据&#39; values包含字符串,而不仅仅是那些完全相同的字符串。

documentation中的示例也应该失败,如果你没有包含整个单词&#34; collie&#34; (我没有测试过,这是一个假设的结果):

>>> Dog.objects.create(name='Rufus', data={'breed': 'labrador'})
>>> Dog.objects.create(name='Meg', data={'breed': 'collie', 'owner': 'Bob'})

>>> Dog.objects.filter(data__values__contains=['collie'])
[<Dog: Meg>]

>>>#Hypothesized example!
>>> Dog.objects.filter(data__values__contains=['coll'])
[]
>>>#Should have returned [Dog: Meg]

有没有办法进行我试图在这里做的查询,或者我发现了一个错误?

0 个答案:

没有答案