gpt4 book ai didi

django - 如何仅索引那些模型\行,其中 some_field=some_value?

转载 作者:行者123 更新时间:2023-12-04 17:54:19 24 4
gpt4 key购买 nike

我使用 django-oscar + Solr + haystack。

*===============================================================================================================*
| id | partner_sku|price_currency|price_excl_tax|num_in_stock|date_created|date_updated|partner_id|product_id|
|"10451"|"S0010436" | "USD" | 74.00 | 20 |'some_date' |'some_date' | 1 | 5992 |
|"10452"|"S0010436" | "USD" | 80.00 | 0 |'some_date' |'some_date' | 2 | 5992 |
*===============================================================================================================*

我只想索引那些 partner_id=2 的行. index_queryset下面没有做我需要的,因为其他合作伙伴也索引了。
class ProductIndexes(CelerySearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(
document=True, use_template=True,
template_name='search/indexes/cpu/item_text.txt')

upc = indexes.CharField(model_attr="upc", null=True)
title = indexes.CharField(model_attr='title', null=True)

# Fields for faceting
product_class = indexes.CharField(null=True, faceted=True)
category = indexes.MultiValueField(null=True, faceted=True)
partner = indexes.MultiValueField(null=True, faceted=True)
price = indexes.FloatField(null=True, faceted=True)
vendor = indexes.CharField(null=True, faceted=True)
rating = indexes.IntegerField(null=True, faceted=True)
num_in_stock = indexes.BooleanField(null=True, faceted=True)

# Spelling suggestions
suggestions = indexes.FacetCharField()

date_created = indexes.DateTimeField(model_attr='date_created')
date_updated = indexes.DateTimeField(model_attr='date_updated')

def get_model(self):
return get_model('catalogue', 'Product')

def index_queryset(self, using=None):
return self.get_model().objects.filter(stockrecords__partner_id=2).order_by('-num_in_stock')
python manage.py rebuild_index被执行

如何实现我需要的索引?

最佳答案

假设这是同一个问题:django oscar github issue 2169
当您尝试过滤 num_in_stock 时这是一个 BooleanField ???

我建议将其更改为 IntegerField 并添加一个 `prepare_num_in_stock 函数,如下所示:

def prepare_num_in_stock(self, obj)
# define get_local_stock as you please
return int(obj.get_local_stock())

希望这可以帮助。

关于django - 如何仅索引那些模型\行,其中 some_field=some_value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40197695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com