Ключом к размышлению над этой проблемой является осознание того, что u.group является менеджером, так же как Groups.objects является менеджером (по умолчанию первый является подклассом второго). Большинство операций, которые вы вызываете в u.group, влияют на всю таблицу Group (с возможностью того, что она сначала отфильтрует объекты, связанные с u). Это означает, что, предполагая, что g относится к u,
u.group.filter(id=g.id).delete()
должно работать так же, как
Groups.objects.filter(id=g.id).delete()
В обоих случаях .filter () возвращает набор запросов (полностью наивный по отношению к вам), а .delete () удаляет все элементы.
Хорошей новостью является то, что u.group должен быть ManyRelatedManager, а это означает, что для него будут доступны дополнительные методы. Для многих примеров, проверьте здесь . Тот, который должен соответствовать вашему сценарию:
u.group.remove(g)