Джанго: Мезонинный модуль поиска фронта - PullRequest
0 голосов
/ 23 мая 2018

У меня проблема в приложении моего django, использующем мезонин .

У меня есть определенные модели для поиска таким образом:

SEARCH_MODEL_CHOICES = ('organization-pages.CustomPage',
                        'organization-network.DepartmentPage',
                        'organization-network.TeamPage',
                        'organization-network.Person',
                        'organization-projects.ProjectTopicPage',
                        'pages.Page',
                        'organization-media.Playlist',
                        'mezzanine_agenda.Event',
                        'organization-projects.Project',
                        'shop.Product',
                        'organization-magazine.Article')

PAGES_MODELS = ('organization-pages.CustomPage',
                'organization-magazine.Topic',
                'organization-network.DepartmentPage',
                'organization-network.TeamPage',
                'organization-projects.ProjectTopicPage',
                'shop.Product')

SEARCH_PARENTS_MODELS = ('organization-network.Person',)

И у меня неткоснулся любого из исходного кода Mezzanine.

Я использую трансляцию модели django, имея такой объект:

d = DepartementPage.objects.create()
d.title_fr = 'french'
d.title_en = 'english'

Если я попытаюсь найти его с помощью поисковой системы Mezzanine, я 'Я найду его только в том случае, если введу название языка, которым я сейчас пользуюсь.

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

Вы знаете, откуда возникла моя проблема?

1 Ответ

0 голосов
/ 25 июня 2018

Используя модель, которую вы указали в коде выше:

d = DepartementPage.objects.create()
d.title_fr = 'french'
d.title_en = 'english'

Вы должны быть в состоянии успешно искать поля, используя следующие в вашем views.py:

query = "search string"
search_fields = ("title_fr", "title_en")
results = DepartementPage.objects.search(query, search_fields=search_fields)

Из документов :

Если search_fields не указано в вызове search, используемые поля будут полями по умолчанию, указанными для модели.

Вы не опубликовали остальные поля модели, но я предполагаю, что у вас также есть поле title по умолчанию (а title_fr, title_en автоматически создаются приложением django-modeltranslation).Поле title является значением по умолчанию, и поэтому будет единственным полем, включенным в результаты поиска.Удачи!

...