Ich verwende django Haystack
mit ElasticSearch backend
. In meinem Modell habe ich eine DateTimeField
, die Probleme verursacht, während rebuilding_indexes.Django Haystack kann das Datetime-Feld nicht indexieren
Mein Modell ist wie folgt:
class MyModel(models.Model):
action = models.DateTimeField()
Meine Index-Klasse ist wie:
Class MyModelIndex(indexes.SearchIndex, indexes.Indexable):
action_time = indexes.DateTimeField(null=True, model_attr="action")
Der Wert i für die bestimmte Instanz in der Schale bekam das Problem schafft ist
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
Und der Fehler, den ich beim Erstellen von Indizes bekomme, ist
if not language_code_re.search(lang_code):
TypeError: expected string or buffer
Ich versuchte Strftime von Indizes zurückzukehren Feld von vorzubereiten, aber es funktioniert auch nicht
def prepare_action_time(self, obj):
return obj.action.strftime('%Y-%m-%dT%H:%M:%SZ') if obj.action else None
aber es funktioniert, wenn ich Unicode-Darstellung des Datetime-Wert wie
def prepare_action_time(self, obj):
return unicode(obj.action) if obj.action else None
zurückkehren
oder ohne use_template=False
in meinem searchindex kann ich die Dokumente oder die Objekte indexieren
Aber ich bin nicht in der Lage, wo zu bekommen Das eigentliche Problem ist. Hilfe wird geschätzt
Ja, es funktioniert nach dem Ändern der USE_L10N Einstellungen. Danke –
Ja, obwohl Sie noch l10n arbeiten müssen in einem realen Welt-Szenario. – Ivan