Индивидуальные настройки в Django
Я создаю электронную справочную библиотеку для своей школы, где я создал пользовательскую страницу администратора (не страницу администратора Django). И в моих требованиях должна быть специальная страница "настроек", где я могу хранить небольшую информацию, такую как
- Как часто создавать отчеты
- Как часто пользователи должны менять свои пароли и т.д.
По умолчанию такие пользовательские настройки недоступны в Django. Но есть ли способ реализовать их в моем приложении? И как я должен хранить эту информацию? Должен ли я создать еще одну таблицу для хранения этой информации?
Пожалуйста, сообщите мне, как поступить в такой ситуации.
Спасибо!
Да, лучшим способом, вероятно, будет просто создать еще одну таблицу для ваших настроек. Это потому, что:
a. Django предоставляет хорошие инструменты для управления БД, поэтому можно меньше беспокоиться об инфр.
b. Обычно у вас будет доступ к БД. Нельзя сказать то же самое о других ресурсах, это зависит от вашего сервера.
b.Просто сделайте что-то вроде этого:
Тогда вы можете захотеть каким-то образом убедиться, что у вас только одна запись, вы можете посмотреть здесь, например.
class MySettings(models.Model):
setting1 = models.IntegerField(default=10)
setting2 = models.IntegerField(default=11)
Конечно, есть альтернативы, например, создать простой dict, содержащий ваши настройки, и добавить некоторые методы для его сериализации на локальный диск, в хорошо известное место. Что-то вроде этого:
import json
MY_SETTINGS_LOCATION = "/path/to/my/settings.json"
def load_settings() {
with open(MY_SETTINGS_LOCATION, "r") as f:
return json.load(f)
}
def save_settings(settings) {
with open(MY_SETTINGS_LOCATION, "w") as f:
return json.dump(settings, f)
}