清除Djang中多个对象的多对多

2024-10-02 12:22:50 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法在delete()方法之前批量清除对象关系? 我有一个模型:

class Man(models.Model):
     girlfriends = model.ManyToManyField('Girl')

想要删除所有的“人”对象视图.py公司名称:

^{pr2}$

获取错误: “QuerySet”对象没有“girlfriends”属性。在


Tags: 对象方法模型model关系models批量delete
2条回答

除非你还试图删除所有相关的女孩,men.delete()会达到你想要的效果。中间表有一个指向Man的外键,删除一个对象将默认删除指向它的所有外键(除非重写^{}行为)。在

错误是正确的,queryset没有'girlfriends'属性。这是因为queryset是一组Man对象,并且每个对象都具有属性

def delete_all_objects(request):
    men = Man.objects.all()
    for man in men:
        man.girlfriends.clear()
        man.delete()
    return HttpResponse('success')

我还没有测试过,但它应该非常接近你需要的。在

相关问题 更多 >

    热门问题