#python #django
#python #django
Вопрос:
Итак, в настоящее время я обновляю приложение Django с 1.8 до 3.1 и обнаружил следующую ошибку:
AttributeError: 'QuerySet' object has no attribute 'field_names'
Я попытался найти информацию об устаревании этого атрибута и проверил API-интерфейс QuerySet на предмет информации, но не смог найти ничего подходящего.
Кто-нибудь проходил через то же самое?
Ответ №1:
Если я не пропустил ни одно из примечаний к выпуску с 1.8 по 2.0 или временной шкалы устаревания, не задокументировано, что объекты набора запросов имеют атрибут ‘field_names’, который в основном представляет собой список имен столбцов таблицы, к которой принадлежит набор запросов.
Просматриваем код из стабильных 1.8 и 1.9 из django /db /models /query.py вы можете видеть, что атрибут был удален.
В случае, если вы использовали этот атрибут и вам нужно, чтобы он работал после обновления, вы можете использовать Meta API моделей Django следующим образом:
field_names = [f.name for f in Object._meta.get_fields()]