有没有办法在delete()方法之前批量清除对象关系? 我有一个模型:
class Man(models.Model):
girlfriends = model.ManyToManyField('Girl')
并且想要删除views.py中的所有“Man”对象:
def delete_all_objects(request):
men = Man.objects.all()
#trying to clear objects. getting an error
men.girlfriends.clear()
men.delete()
return HttpResponse("success")
出现错误: “QuerySet”对象没有属性“girlfriends”。
最佳答案
错误是正确的,查询集没有有“girlfriends”属性。这是因为查询集是一组 Man
对象,并且每个这些都具有属性
def delete_all_objects(request):
men = Man.objects.all()
for man in men:
man.girlfriends.clear()
man.delete()
return HttpResponse('success')
我还没有测试过这个,但它应该非常接近你所需要的。
关于python - 在 Django 中清除多个对象上的多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28856417/