2013-05-28 2 views
1

Мне было интересно, какое правильное место было бы для загрузки неизменяемой части данных из базы данных, которая должна быть доступна во всех моделях.Где загрузить неизменяемые данные из базы данных в проекте Django?

В основном это настройка базы данных (а не настройка проекта), но должна быть аналогична модели данных и должна быть доступна и в других моделях.

Где я могу поставить/реализовать это? Этот, ну, несколько архитектурный вопрос не совсем ясен из документации, которую я прочитал.

EDIT: Настройка: Я использую график DB, а не реляционную БД. Узел, называемый «текущий», который указывает на текущие версии частей версий данных как ярлык. При обновлении части данных (узла) удаление связи со старым узлом и связывание нового узла осуществляется в модели соответствующего узла при вызове .save().

Существует ровно один «текущий» узел, который указывает на каждый узел, содержащий обновленную дату, новейшие версии. Этот узел сам по себе невозможен. Он не имеет свойств. Его отношения управляются моделями связанных узлов.

Поскольку это одноэлемент (как концепция, не обязательно реализация класса Singleton), это будет пустой тратой ресурсов базы данных DB, чтобы каждый раз запрашивать ее, каждый раз ударять DB.

Проясняет вопрос? Благодаря!

+0

Помогло бы что-нибудь в этом проекте? https://github.com/andres-torres-marroquin/django-system-globals – Jacinda

+0

Зачем вам нужны «неизменяемые» данные в базе данных? Как насчет наличия базовой модели с объектом, загруженным из настроек django? – tuxcanfly

+0

@tuxcanfly: хорошая точка, я подробно остановимся на вопросе в редактировании. –

ответ

0

Хотя это не точная реализация решения вашей конкретной проблемы, этот проект управляет глобальными системами из базы данных. Он содержит реализацию кэша, которая может помочь вам избежать запросов к базе данных каждый раз в вашем проекте.

https://github.com/andres-torres-marroquin/django-system-globals/blob/master/system_globals/models.py

Смежные вопросы