Как динамически определять и создавать настраиваемую сквозную модель с указанными полями c и структурой для всех настраиваемых полей множества - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть модель с множеством полей m2m:

class Model1(models.Model):
    useful_data = models.TextField(null=True)

class Model2(models.Model):
    useful_data = models.TextField(null=True)

class Entity(models.Model):
    field1 = CustomManyToManyField('entities.Model1')
    field2 = CustomManyToManyField('entities.Model2')
    field3 = CustomManyToManyField('entities.Model2')
    ...

Я хочу переопределить "сквозную" логи автоматического создания модели c, чтобы добавить несколько дополнительных полей для хранения дополнительной метаинформации о связи. Так, например, для field1 будет создана модель промежуточного поля с полями:

class CustomThroughModel(models.Model):
    entity = models.ForeignKey('entities.Organization')
    model1 = models.ForeignKey('entities.Model1')

    # And additional meta information
    data_source = models.CharField()

    updated_at = models.DateTimeField(auto_now=True)
    deleted_at = models.DateTimeField(null=True)
    created_at = models.DateTimeField(auto_now_add=True)

Я не хочу копировать и вставлять аналогичные модели для каждого множества полей. Я хочу указать только CustomManyToManyField без явного указания каждого «сквозного» (он должен обрабатываться динамически). Как я могу переопределить ManyToManyField, чтобы добавить этот лог c?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...