Django ManyToManyField, как добавить созданные и обновленные - PullRequest
0 голосов
/ 27 июня 2018

Как я могу добавить поля create_at и updated_at в свой ManyToManyField?

class Profile (models.Model):  
  created_at = models.DateTimeField(auto_now_add=True)
  updated_at = models.DateTimeField(auto_now=True)

class Group(models.Model):
  created_at = models.DateTimeField(auto_now_add=True)
  updated_at = models.DateTimeField(auto_now=True)
  profiles = models.ManyToManyField(Profile, related_name='groups')

1 Ответ

0 голосов
/ 27 июня 2018

Вам необходимо переопределить ManyToManyField с помощью аргумента с именем though.
Подробнее здесь

class Group(models.Model):
  created_at = models.DateTimeField(auto_now_add=True)
  updated_at = models.DateTimeField(auto_now=True)
  profiles = models.ManyToManyField(Profile, related_name='groups',
                    <b>through='GroupProfileRelationship'</b>)

class Profile (models.Model):  
    # fields

Теперь вот сквозная модель

<b>class GroupProfileRelationship(models.Model):</b>
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    profile = models.ForeignKey(Profile, on_delete=models.CASCADE)
    group = models.ForeignKey(Group, on_delete=models.CASCADE)

Обратите внимание, что некоторые опции больше не будут доступны. например add() remove()

Очень важно взглянуть на официальную документацию здесь

...