def METHOD_NAME(self):
    field = ThroughField(
        through_model=LicenceUser,
        through_from_field_name='licence',
        through_to_field_name='user',
        attribute='users',
        column_name='users',
        widget=UserManyToManyWidget(model=get_user_model())
    )
    self.assertEqual(self.licence.users.all().count(), 3)
    # Make sure it doesn't touch other licences
    self.assertEqual(self.licence2.users.all().count(), 3)
    # Add and remove
    with self.assertNumQueries(4):
        field.save(
            self.licence,
            {'users': ','.join([i.username for i in self.users])}
        )
    self.assertEqual(self.licence.users.all().count(), 4)
    # Not remove
    users = self.users + [UserFactory()]
    with self.assertNumQueries(3):
        field.save(
            self.licence,
            {'users': ','.join([i.username for i in users])}
        )
    self.assertEqual(self.licence.users.all().count(), 5)
    # Remove
    with self.assertNumQueries(3):
        field.save(
            self.licence,
            {'users': ','.join([i.username for i in users[:4]])}
        )
    self.assertEqual(self.licence.users.all().count(), 4)
    # Update
    with self.assertNumQueries(2):
        field.save(
            self.licence,
            {'users': ','.join([i.username for i in users[:4]])}
        )
    self.assertEqual(self.licence.users.all().count(), 4)
    # Make sure it doesn't touch other licences
    self.assertEqual(self.licence2.users.all().count(), 3)