我正在使用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