У меня есть модель с множеством полей 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?