Как адаптировать генератор Java POJO для модели Django с помощью пользовательских методов?

Я закончил с этим уроком, который показывает, как использовать textX для написания Java POJO.

Я думаю об адаптации этого, чтобы написать классы модели Django.

Проблема в том, когда мне нужно добавить пользовательские методы модели в класс модели Django.

И затем, если я впоследствии изменю DSL, сгенерированный класс модели обязательно удалит методы пользовательской модели.

Как обслуживать пользовательские методы модели, если для создания классов модели Django используется textX?

1 ответ

Ну, вы могли бы использовать инструмент сравнения / слияния для объединения существующего и вновь сгенерированного кода, но это, безусловно, потребует ручного вмешательства для решения возможных конфликтов слияния.

FWIW, написание ваших классов моделей вручную не займет намного больше времени, чем написание их с использованием DSL (я немного изменил версию DSL, чтобы учесть специфичные для базы данных потребности, такие как длина charfields):

entity Person {
  name : string(128)       
  address: Address   
  age: integer      
}

vs из django.db импорт моделей

class Person(models.Model):
    name = models.CharField(max_length=128)
    address = models.ForeignKey(Address)
    age = models.IntegerField()

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

Примечание: если ваша проблема заключается в том, чтобы сгенерировать код "boostrap" моделей из существующей схемы БД, Django уже знает, как это сделать без необходимости использования DSL.

Другие вопросы по тегам