2013-05-01 5 views
1

& Django version: 1.5.1Django, модели и несколько баз данных

Я в настоящее время работает над созданием приложения для серверной phpbb3. Наша текущая реализация в PHP слишком много ресурсов.

Я нахожусь на 90%, но я привязался к маленькой хватке, когда дело доходит до конфигурации.

У нас есть несколько форумов, на которых должен запускаться сценарий, и каждый из них имеет свою собственную базу данных, такую ​​как база данных site1, site2 и site3. Django также имеет собственную базу данных.

Что мне нужно сделать, это указать настройки для моего сценария на основе каждого сайта и форумов на сайте. Поэтому мне нужно приобрести форумы, которые существуют на сайте1, а затем в панели администратора они могут выбрать сайт 1 и выбрать форум и выбрать свою конфигурацию оттуда. Затем они могут выбрать сайт 2 и выбрать форум с сайта 2, а затем установить свои данные.

Я не хочу создавать сайт django для каждого сайта, на котором мы работаем, и я хотел бы сделать так, чтобы было возможно добавить новый сайт, но я не против создания нового приложения для каждого сайта если это то, что нужно?

Что было бы лучшим методом для динамического вытягивания форумов из другой базы данных и связывания его с значением сайта и предоставления конфигурационных моделей для этого форума. (Я не хочу, чтобы быть в состоянии выбрать форум, который существует на другом сайте)

+0

Можете ли вы предоставить более подробную информацию о настройке phpbb с помощью django? – lalit

+0

@lalit Какую дополнительную информацию вы хотели бы узнать?Есть несколько сайтов, которые устанавливают с использованием PHPBB, и все они имеют собственное имя базы данных, поэтому у site1 есть база данных, называемая site1, а внутри есть все стандартные форумы phpp со стандартным префиксом phpbb_. Сайт django настроен под собственную базу данных. Мне нужна страница администратора, которая позволяет мне выбирать/создавать сайт, а затем с этого сайта, извлекать нужную базу данных и предоставлять правильные модели форумов и настраивать конфигурацию для каждого форума, который существует в базе данных phpbb. – iargue

+0

Спасибо @ user1189764. Чтобы быть более конкретным по функциональности, вы хотите достичь следующих: разные базы данных для разных сайтов, способ совместного доступа к базе данных django и phpbb, а также интерфейс администратора для выбора сайта и соответствующей базы данных. – lalit

ответ

1

Вот некоторые из указателей, с помощью которого вы можете достичь выше функциональности:

1. Различные базы данных для различных Сайты Django.

Вы можете найти соответствующий вопрос here, который объясняет, как вы можете настроить custom router для Database.

2. Способ доступа к базе данных django и phpbb вместе.

Возможно наличие проекта Githubhere, что может помочь вам в этом.

3. Интерфейс администратора для выбора сайта, соответствующей базы данных и применения настроек.

Простейшим вариантом будет сбрасывать настройки в Dictionary или File или комбинация обоих и на основании вашего сайта ID выберите Настройки, присутствующих в этом словаре для этого конкретного сайта.

Чтобы быть действительно честным, я не чувствую, что вам нужен Admin Inteface. Но все же, если есть какие-либо требования, о которых я не знаю, вы можете написать простой вид, чтобы обрабатывать выше всего и предоставлять его доступ с панели администратора.

Надеюсь, это решает вашу проблему.

+0

Я не могу даже проверять или работать над последней частью, потому что первая часть (номер 1) полностью ошибочна. Я получаю ошибки влево и вправо, пытаясь использовать их метод. Например, на основе их настройки это не сработает, поэтому я переместил его в свой собственный файл и указал его внутри параметров django, и маршрутизатор зарегистрировался, но не смог бы. Затем я добавил из параметров импорта django.conf, но добавив из django.contrib.sites.models импорт сайта, чтобы он мог загрузить имя сайта, не получилось. Неправильно сконфигурировано: Ошибка импорта маршрутизатора базы данных CustomDatabaseRouter: «невозможно импортировать соединение имен» – iargue

+0

Хорошо. Я получил первый раздел, работающий (предположительно), но я все еще сталкиваюсь с проблемами среди других вещей. Я пытаюсь настроить страницу администратора, но я действительно запутался в том, как это установить. Я не думаю/знаю, будет ли работать внутренняя инфраструктура сайта, потому что я не запускаю проект django на более чем 1 сайте. Проект django имеет только один домен и получает доступ только из этого домена, поэтому я не уверен, как связать переменную сайта без доступа к нему из другого домена. Я также не знаю, как связать модули с разными сайтами. – iargue

+0

Привет, я думаю, что я немного неясен о ваших требованиях. Вы хотите использовать разные форумы и базы данных в рамках того же проекта и сайта django, основываясь на выборе в панели администратора? – lalit