HaystackでWhooshを使用していて、すべて正常に動作しますが、ElasticSearchに変更したいのですが、rebuild_indexを実行すると次のエラーが発生します。私はなぜエラーが起きているのか分かりませんが、私のモデルとデータについて不平を言っているようですが、Whooshの検索/索引付けをすべてうまくいけばいいです。ここでSerializationError Elastic Searchの再構築Django App
Django==1.8.4
elasticsearch==2.3.0
django-haystack==2.4.1
File "C:\Users\user.virtualenvs\pguider\lib\site-packages\elasticsearch\serializer.py", line 50, in dumps raise SerializationError(data, e) elasticsearch.exceptions.SerializationError: ({u'django_id': u'1', 'created': '2016-02-13T22:19:28.037000+00:00', 'suppl ier_code': u'BL32291', 'related_supplier_parts': [], u'django_ct': u'products.supplierpart', 'supplier': u'Parts Town', 'text': u'BL32291\n32291\nBlodgett\n\nParts Town\n\n\n', 'part_code': u'32291', u'id': u'products.supplierpart.1'}, Type Error("Unable to serialize [] (type:)",))
私のモデルです:
from django.db import models
class Supplier(models.Model):
name = models.CharField(max_length=50)
def __unicode__(self):
return u'%s' % self.name
class Part(models.Model):
name = models.CharField(max_length=200, null=True)
code = models.CharField(max_length=30, null=True)
def __unicode__(self):
return u'%s %s' % (self.code, self.name)
class SupplierPart(models.Model):
part = models.ForeignKey(Part)
supplier = models.ForeignKey(Supplier)
supplier_code = models.CharField(max_length=30)
description = models.CharField(max_length=200)
price = models.CharField(max_length=6, null=True)
sale_price = models.CharField(max_length=6, null=True)
quantity = models.IntegerField(null=True)
photo = models.ImageField(upload_to='products', null=True)
url = models.URLField()
created = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.supplier_code
@property
def related_supplier_parts(self):
return self.part.supplierpart_set.all().exclude(pk=self.pk)
elasticsearchは 'related_supplier_parts'のリストフィールドをシリアル化できません。あなたはそれが書かれていることを教えていただけますか? –
@BartoszDabrowskiは私の外部キーフィールドについて不平を言っているようですね?モデルを含めるように質問を更新しました –