переопределить django приложение поиска Oscar для возврата только товаров, указанных c продуктов? - PullRequest
1 голос
/ 23 апреля 2020

Я использую Django oscar (2.0.2), где я установил связь внешнего ключа идентификаторов продавца с таблицей продуктов AbstractProduct с данными (https://prnt.sc/s1ssxx) так что я могу получить данные о продавце c из базы данных. По умолчанию oscar возвращает все продукты в результатах поиска, я хочу только возвращать продукты, указанные c, на сайт продавца.

Я использую простой поиск в Haystack, как это предлагается в документации к оскару. Я попытался переопределить приложение поиска, как и все другие приложения, я переопределил файл search_indexes.py, но, похоже, он никогда не вызывается из FacetedSearchView. , Я также пытался переопределить обработчики поиска, но он также не вызывался.

Я пытался понять функциональность поиска Oscar, но в оболочке я получил предупреждение,

UserWarning : Модель не зарегистрирована для поиска. warnings.warn ('Модель% r не зарегистрирована для поиска.'% (model,)) Model '' не обрабатывается маршрутизаторами. Класс модели oscar_apps.catalogue.models.Product, который не обрабатывается маршрутизаторами.

Как зарегистрировать модель продукта для поиска?

где мне придется переопределить запрос, подобный этому :

Product.objects.filter (user_id = 1), чтобы при поиске товара возвращать только товары, определенные продавцом c?

Я знаю, как переопределить приложения, но мог бы кто-то даст обзор и объяснит мне шаги, которые потребуются для переопределения приложения поиска, и чтобы работала базовая функция сортировки c?

, если мой вопрос неясен, дайте мне знать в комментариях так что я могу улучшить его.

...