Как адаптировать генератор 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.