2017-08-24 2 views
1

フルテキスト検索のためにDjangos SearchVectorFieldで結合フィールドを保持することは可能ですか?例えばDjangos SearchVectorFieldに結合フィールドを保持することはできますか?

class P(models.Model): 
    brand = models.ForeignKey(Brand, on_delete=models.CASCADE) 
    search_vector = SearchVectorField(null=True, blank=True) 

コード:

p = P.objects.get(id=1) 
p.search_vector = SearchVector('brand__name') 
p.save() 

は、この例外が発生します:

FieldError: Joined field references are not permitted in this query 

これが不可能な場合はどのようにあなたが参加し、注釈付きクエリのパフォーマンスを向上させることができますか?

答えて

1

私はあなたの問題に対する回避策が見つかりました:

p = P.objects.annotate(brand_name=SearchVector('brand__name')).get(id=1) 
p.search_vector = p.brand_name 
p.save() 
関連する問題