2016-05-11 3 views
1

Я использую odoo9.0 для разработки моего проекта crm. В настоящее время я поместил весь свой логический код в модели, но некоторые бизнес-логики сложны. Например, в модели A мне нужно прочитать данные из моделей B, C и D и записать данные результата в модель E. Моя проблема в том, что модель A становится все больше и больше и становится неуправляемой. Я хочу разбить модель на меньшую часть. Может ли кто-нибудь дать мне совет?Как оптимизировать структуру проекта аддонов?

ответ

1

Это очень общий вопрос.

В основном это все о Принципы разработки программного обеспечения и Шаблоны проектирования.

Вот в нашей команде, мы всегда стараемся следовать некоторым основным вещам, как:

создать метод для каждого логического/кода (который используется более чем один раз)

это поможет нам в увеличении читаемости и модульности это также поможет в коде повторного использовании

Положить весь метод в подходящую модель.

пытаются управлять разделения проблем Не распространяйте метод в каждом где, а не только метод место в модели, какой объект, который является наиболее концертирует/используемый объект, используемый в методе ,

В рода просто следовать как можно больше принципов проектирования и Шаблоны проектирования программной инженерии

позволяют принимать очень простой пример:

, если у нас есть две модели вызова студент и курс. теперь я после выполнения концепции модульности я есть создать некоторый метод, как

  1. get_student_details.
  2. save_student_details.
  3. get_course_details.
  4. save_course_details

Теперь, очевидно, я размещу две топ-метода в модели студента и отдыхать два в курсовой модели.

Следуйте Также Odoo Guideline

я надеюсь, что это может помочь вам.

+0

Большое спасибо за ваш ответ, но я думаю, что я следил за принципами, о которых вы упомянули, однако модель A по-прежнему довольно велика. Представление, связанное с моделью A, имеет 10+ кнопок, и для каждой кнопки нужен один метод, поэтому модель A имеет 20+ методов, что делает modelA.py большим файлом. Я хочу уменьшить его, например, создать modelA_calc и modelA_write, тогда я смогу использовать их внутри modelA. –

+0

да, вы можете создать несколько файлов для той же модели, например, из .model import MainModel class ModelA (MainModel): # вы логически – prakash

+0

, но не забудьте сделать запись нового файла внутри init.py – prakash

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