Я использую django Haystack
с ElasticSearch backend
. В моей модели у меня есть DateTimeField
, который создает проблемы при перестройке_индекса.Django Haystack не может индексировать поле datetime
Моя модель выглядит так:
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
, но это работает, если я вернусь юникода представление даты и времени Значение как
def prepare_action_time(self, obj):
return unicode(obj.action) if obj.action else None
или без использования use_template=False
в моих поисковых индексах Я могу проиндексировать документы или объекты
Но я не могу получить wher Фактическая проблема. Помощь будет оценена
Да, он работает после изменения настроек USE_L10N. Спасибо –
Да, хотя вы все еще должны иметь l10n, работающий в реальном мире. – Ivan