Лучший способ объявления дополнительных данных в проекте Django
Я ищу лучшую практику для объявления дополнительных данных в проекте Django. Представьте, что мне нужно хранить огромный список вариантов выбора для использования в app1/models.py
(я видел много лучших практик, в которых эти варианты объявляются в теле модели). В другом сценарии, представьте, что мне нужно хранить десятки данных конфигурации, чтобы использовать их в views.py
. Принято ли объявлять их в функции/классе?
На мой взгляд, есть два общих метода для того, чтобы сделать это. (Не уверен, что вообще рекомендуется)
Метод №1
Я могу хранить их все в моем файле settings.py
и получать к ним доступ с помощью импорта (как from django.conf import settings
).
settings.py
:
...
NBA_TEAMS = (
("red", "Bulls"),
("yellow", "Lakers"),
...
)
Метод №2
Сохраните их все в файле с именем data.py
прямо рядом с settings.py
, и попробуйте импортировать его в конец файла настроек следующим образом.
settings.py
...
try:
from .data import NBA_TEAMS, ..
except:
pass
Есть ли какая-нибудь лучшая практика по этому вопросу? Спасибо.
В соответствии с моими предложениями для обеих ваших проблем вы должны создать один constants.py
и один utils.py
файл.
Теперь зависит от вашего случая использования, если вы хотите использовать одни и те же константы в нескольких приложениях в вашем проекте, тогда определите их в корне рядом с manage.py
или если константы специфичны для приложения, тогда создайте их в папке конкретного приложения рядом с views.py
файлом.
То же самое для utils.py
вы должны определить все полезные функции / методы в одном файле utils.py и использовать его во всех приложениях в вашем проекте.