帮助删除Django中的reconds

帮助删除Django中的reconds,django,django-models,django-orm,Django,Django Models,Django Orm,如何删除关系表中的条目。在这种情况下,组和用户之间存在多对多关系。上述代码中的delete语句从Groups表中删除组。 我只想从Users\u group表中删除用户和组之间的关系。 我该怎么做呢 谢谢思考这个问题的关键是要认识到u.group是一个管理器,就像Groups.objects是一个管理器一样(默认情况下,前者是后者的子类)。对u.group调用的大多数操作都会影响整个group表(有可能它会首先过滤到与u.group相关的对象)。这意味着,假设g与u相关 for

如何删除关系表中的条目。在这种情况下,组和用户之间存在多对多关系。上述代码中的delete语句从Groups表中删除组。 我只想从Users\u group表中删除用户和组之间的关系。 我该怎么做呢


谢谢

思考这个问题的关键是要认识到u.group是一个管理器,就像Groups.objects是一个管理器一样(默认情况下,前者是后者的子类)。对u.group调用的大多数操作都会影响整个group表(有可能它会首先过滤到与u.group相关的对象)。这意味着,假设g与u相关

        for u in Users.objects.all():

            for g in u.group.all():
                if g not in Groups.objects.filter(domain__user=u.id):
                   u.group.filter(id=g.id).delete()
工作原理应与

u.group.filter(id=g.id).delete()
在这两种情况下,.filter()都返回一个queryset(对于u来说是完全幼稚的),而.delete()则删除所有成员

好消息是u.group应该是一个多相关的管理者,这意味着将有更多的方法可供使用。对于许多示例,请检查。应该适合您的场景:

Groups.objects.filter(id=g.id).delete()

思考这个问题的关键是认识到u.group是一个管理器,正如Groups.objects是一个管理器(默认情况下,前者是后者的子类)。对u.group调用的大多数操作都会影响整个group表(有可能它会首先过滤到与u.group相关的对象)。这意味着,假设g与u相关

        for u in Users.objects.all():

            for g in u.group.all():
                if g not in Groups.objects.filter(domain__user=u.id):
                   u.group.filter(id=g.id).delete()
工作原理应与

u.group.filter(id=g.id).delete()
在这两种情况下,.filter()都返回一个queryset(对于u来说是完全幼稚的),而.delete()则删除所有成员

好消息是u.group应该是一个多相关的管理者,这意味着将有更多的方法可供使用。对于许多示例,请检查。应该适合您的场景:

Groups.objects.filter(id=g.id).delete()
QuerySet有一个.delete()方法,用于在单个SQL查询中删除QuerySet的所有成员。QuerySet有一个.delete()方法,用于在单个SQL查询中删除QuerySet的所有成员。