我正在使用django Haystack
和ElasticSearch backend
。在我的模型中,我有一个DateTimeField
,它在rebuilding_indexes时产生问题。Django Haystack无法对日期时间字段进行索引
我的模型是这样的:
class MyModel(models.Model):
action = models.DateTimeField()
我的索引类是这样的:
Class MyModelIndex(indexes.SearchIndex, indexes.Indexable):
action_time = indexes.DateTimeField(null=True, model_attr="action")
我在外壳为它创造问题的特定情况下得到的值是
obj = MyModel.objects.get(id=1)
obj.action
Out[56]: datetime.datetime(2016, 6, 21, 14, 6, 37, 430691, tzinfo=<UTC>) # result or value of action field
我在创建索引时遇到的错误是
if not language_code_re.search(lang_code):
TypeError: expected string or buffer
我试图从外地编制索引的strftime返回,但它也不起作用
def prepare_action_time(self, obj):
return obj.action.strftime('%Y-%m-%dT%H:%M:%SZ') if obj.action else None
,但它的工作原理,如果我返回日期时间值的Unicode表示像
def prepare_action_time(self, obj):
return unicode(obj.action) if obj.action else None
或在我的searchindex中没有使用use_template=False
我能够索引文档或对象
但我无法获得实际的问题是。帮助将不胜感激
是的,它在更改USE_L10N设置后生效。谢谢 –
是的,尽管你仍然必须让l10n在真实世界的场景中工作。 – Ivan