Я работаю над базой кода, в которой первоначальный разработчик создал ProductType model
с несколькими строками в базе данных, представляющими несколько типов продуктов. По всему коду есть такие операторы, как ProductType.objects.get(slug='foo_product_type')
. Эти операторы вызовут полный сбой, если приборы не загрузили запись ProductType
с slug = 'foo_product_type'
. Как лучше всего определить ProductType
с помощью слага 'foo_product_type'
? Кажется, что код Python не должен зависеть от загружаемых приборов, но я действительно не могу придумать другого решения. Это похоже на плохую практику, когда логика вашего сервера зависит от определенных полей базы данных, но я не уверен, что смогу придумать другой метод.
Я работал с использованием choices=
в определении модели, но, похоже, это больше для целостности данных, а не для загрузки записи с такими деталями, как price
, так что это мне не помогает. В настоящее время я загружаю фикстуры после переноса новой базы данных, и это работает, но мне любопытно, есть ли у кого-нибудь лучшее решение.
if ProductType.objects.get(slug='foo_product_type'):
когда ProductType
с слагом 'foo_product_type'
не существует.
Когда прибор загружается, объект захватывается для использования в коде. Когда запись отсутствует, приложение вылетает.
.get(..)
вызывает ошибку, если запись не существует. - person Willem Van Onsem   schedule 26.08.2019