django Haystack
をElasticSearch backend
で使用しています。私のモデルでは、DateTimeField
があり、これはrebuilding_indexesの間に問題を引き起こしています。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
です
インデックスの作成中に発生するエラーは
です210if 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
のようなDateTime値のUnicode表現を返した場合、それは動作します
またはuse_template=False
を検索インデックスに使用していません。文書またはオブジェクトのインデックスに登録できます。
しかし、私は得ることができません実際の問題はeです。ヘルプは高く評価されます
はい、USE_L10Nの設定を変更した後に動作します。ありがとう –
はい、現実の世界のシナリオではまだ作業が必要です。 – Ivan