Ошибка manage.py после обновления Wagtail 2.15

После обновления до Wagtail 2.15 (или 2.15.1) с 2.14.2 мой рабочий сайт с postgres и поиском в базе данных ломается, а команды, выполняемые с manage.py, выдают ошибку, несмотря на то, что я добавил необходимые WAGTAILSEARCH_BACKENDS в настройки.

У меня есть два веб-приложения с разными настройками, запущенные с одной и той же версии Wagtail. Одно из приложений (putkeep) имеет строку поиска, а другое (secretgifter) - нет. После обновления Wagtail с 2.14.2 до 2.15 putkeep выдает ошибку 404, а secretgifter - нет. Если я использую pip для перехода обратно на 2.14.2, то ошибка 404 исчезает и сайт загружается (хотя результаты поиска выдают ошибку 500).

Если я запускаю makemigrations (или любую другую команду, использующую manage.py) для secretgifter, она работает нормально. Для putkeep (с поиском) он выдает следующую ошибку:

  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/th-putkeep.net/putkeep/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/home/th-putkeep.net/putkeep/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
    django.setup()
  File "/home/th-putkeep.net/putkeep/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/th-putkeep.net/putkeep/lib/python3.8/site-packages/django/apps/registry.py", line 122, in populate
    app_config.ready()
  File "/home/th-putkeep.net/putkeep/lib/python3.8/site-packages/wagtail/search/apps.py", line 21, in ready
    set_weights()
  File "/home/th-putkeep.net/putkeep/lib/python3.8/site-packages/wagtail/search/backends/database/postgres/weights.py", line 44, in set_weights
    BOOSTS_WEIGHTS.extend(determine_boosts_weights())
  File "/home/th-putkeep.net/putkeep/lib/python3.8/site-packages/wagtail/search/backends/database/postgres/weights.py", line 32, in determine_boosts_weights
    boosts = get_boosts()
  File "/home/th-putkeep.net/putkeep/lib/python3.8/site-packages/wagtail/search/backends/database/postgres/weights.py", line 26, in get_boosts
    boosts.add(boost)
TypeError: unhashable type: 'list'

В соответствии с документацией я добавил это в свои настройки:

WAGTAILSEARCH_BACKENDS = {
    'default': {
        'BACKEND': 'wagtail.search.backends.database',
    }
}

Любые предложения будут приняты с благодарностью.

Я обнаружил в своем models.py код, который не вызывал ошибок на моем сайте под управлением Wagtail 2.14.2 и ниже. Если его закомментировать, он устраняет ошибку, вызванную обновлением до Wagtail 2.15 и выше. Я размещаю его здесь как ответ на мою проблему, потому что все остальное, похоже, работает (включая поиск) без каких-либо дополнительных изменений, хотя я не уверен, почему он вызывает ошибку и нужен ли он мне вообще:

    search_fields = Page.search_fields + [  # Inherit search_fields from Page
        index.SearchField('content'),
        index.SearchField('tags', [
            index.SearchField('name', partial_match=True, boost=10),
        ]),
    ]
Вернуться на верх