Индивидуальные настройки в 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)
}
Вернуться на верх