Django 'title_en' нет в списке - PullRequest
       19

Django 'title_en' нет в списке

0 голосов
/ 15 сентября 2018
Request Method: GET
Request URL:    http://localhost:8000/blog/blog-title/
Django Version: 1.10.8
Exception Type: ValueError
Exception Value:    
'title_en' is not in list
Exception Location: /lib/python3.6/site-packages/django/db/models/query.py in __init__, line 1715
Python Executable:  /bin/python
Python Version: 3.6.5

после установки django-modeltranslation я получаю эту ошибку на моем сайте django. Я попытался добавить поля в translationOptions. Также попробовал makemigration и миграции. Это добавляет title_en в таблицу, но не выводит блог на первый план. Перед добавлением django-modeltranslation блоги корректно отображались без ошибок.

1 Ответ

0 голосов
/ 15 сентября 2018

Когда вы добавляете model-translation к существующим моделям, которые уже содержат данные, данные по-прежнему сохраняются в исходном столбце (например, title), но не копируются в новый языковой столбец по умолчанию title_en.

Таким образом, если вы переносите существующие данные, после makemigrations и migrate вы также должны запустить update_translation_fields, который скопирует любые существующие значения в пустые языковые столбцы по умолчанию.

Вы можете запустить это несколько раз (при добавлении перевода к другим моделям позже), он копирует значения только тогда, когда поле _en пусто.

...