Как адаптировать генератор Java POJO для модели Django с помощью пользовательских методов? - PullRequest
0 голосов
/ 28 декабря 2018

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

Я подумываю адаптировать его для написания классов моделей Django.

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

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

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

1 Ответ

0 голосов
/ 28 декабря 2018

Что ж, вы могли бы использовать инструмент сравнения / слияния для объединения существующего и вновь сгенерированного кода, но для этого наверняка потребуются ручные вмешательства для разрешения возможных конфликтов слияния.Это займет гораздо больше времени, чем написание их с использованием DSL (я немного изменил версию DSL, чтобы учесть специфичные для базы данных потребности, такие как длина charfields):

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

против моделей импорта django.db

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

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

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

...