Как автоматически обновлять поле при создании другой записи в разных моделях?

У меня есть две модели, которые выглядят следующим образом:

class TeamMember(models.Model):
    member = models.ForeignKey(User, on_delete=models.SET(get_default_team_member), 
                verbose_name='Member Name', related_name="team_members")
    team = models.ManyToManyField('Team', verbose_name='Team Name', 
            related_name="team_members", blank=False, default=team_id)
    shift = models.ForeignKey(Shift, on_delete=models.PROTECT)
... 
class Team(models.Model):
    name = models.CharField(max_length=50)
    members = models.ManyToManyField(TeamMember, blank=True, related_name="members")

`

Когда я добавляю нового члена, я хочу автоматически добавить его в связанную команду.

Например, при добавлении Джона требуется назначить ему команду (blank=False), а команда из тех, что у нас есть в модели Team. Тогда как мне обновить членов в модели Team, чтобы соответственно добавить Джона в одну из команд?

Помогите, пожалуйста, спасибо!

You can do as like this 
form = TeamMemberForm()
if form.is_valid():
    instance = form.save()
    team = Team.objects.create(name="John")
    instance.members.add(team)
class MyModel(models.Model):
    name = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(blank=True, unique=True)
    is_activate = models.BooleanField(default=True)

    def __str__(self):
        return f'{self.name} {self.product_name}'

    def create_auto_slug(self):
        self.slug = slugify(f'{self.name}-{self.pk}')

    def model2save(self):
        MyModel2.objects.create(**your_data)

    def save(self, *args, **kwargs):
        model2save()
        super(Product, self).save(*args, **kwargs)
        self.create_auto_slug()

другой метод - сигналы

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