Можно ли изменить промежуточную модель в отношении ManyToManyField в Django?

Предположим, я сделал что-то вроде следующего, чтобы установить отношения "многие-ко-многим" между двумя моделями:

class Publication(models.Model):
    title = models.CharField(max_length=30)

class Article(models.Model):
    headline = models.CharField(max_length=100)
    publications = models.ManyToManyField(Publication)

Теперь я хочу добавить несколько дополнительных полей к отношениям "многие-ко-многим". Я искал и нашел, что могу сделать что-то вроде этого:

class Publication(models.Model):
    title = models.CharField(max_length=30)

class Article(models.Model):
    headline = models.CharField(max_length=100)
    publications = models.ManyToManyField(Publication, through='Enrollment', through_fields=('article', 'publication'))

class Enrollment(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    publication = models.ForeignKey(Publication, on_delete=models.CASCADE)
    date_joined = models.DateField(null=True, default=None, blank=True)

    class Meta:
        unique_together = [['article', 'publication']]

но, как есть способ добавить несколько дополнительных полей и сохранить все предыдущие отношения?

Вернуться на верх