2017-02-18 12 views
0

Я разрабатываю приложение django в python. Он состоит из нескольких моделей. Он использует базы данных отношений MySQL. Для некоторых функций он также использует базу данных elasticsearch и neo4J. Я использую библиотеку elasticsearch_dsl для elasticsearch и neomodel библиотека для работы с neo4j.Как повторно использовать модель django в elasticsearch и neo4j?

Для некоторых моделей, когда создается новый объект, он вводится в elasticsearch и neo4j, а также MySQL. Мне требуется redefine та же модель (которая определена для django-orm) для elasticsearch_dsl и neomodel. В результате в моем проекте существует три разных типа определения одной модели.

Есть ли какой-нибудь сухой способ сделать это? Я хочу сказать, что я хочу определить модель для django-orm, а затем elasticsearch_dsl и neomodel библиотека автоматически создает представление своей модели от django-model.

Извините за плохой английский. Заранее спасибо.

ответ

0

Поскольку существуют большие различия между тремя технологиями (Graph vs Relational vs Document), автоматический разговор, вероятно, будет способен использовать только общие функции всех двигателей. Попытайтесь сохранить одинаковые имена во всех моделях (имена моделей и полей), чтобы иметь возможность легко работать со всеми технологиями. Это должно быть легко при добавлении нескольких полей. Если у вас много существующих моделей, попробуйте создать код с помощью AppConfig.get_models() и Model _meta API

+0

Можете ли вы поделиться каким-то кодом, как доказательством концепции вашей идеи? –

+0

Просто попробуйте зациклиться на результатах методов API и используйте 'print()' – Udi