【发布时间】:2014-10-21 04:41:45
【问题描述】:
我有两个模型:模式和类别。
模式有一个多态字段categories = models.ManyToManyField(Category, related_name='patterns')
我的视图从表单中获取类别的查询集。我需要获取标有该类别的所有模式,并从每个模式的 categories 字段中删除这些类别。
现在我这样做如下:
patterns_to_remove_category = Pattern.objects.all()
for category in categories:
patterns_to_remove_category = patterns_to_remove_category.filter(categories=category)
for pattern in patterns_to_remove_category:
pattern.categories = pattern.categories.exclude(pk__in=[c.pk for c in categories])
但我想尽量减少对数据库的点击次数。最好的方法是什么?
【问题讨论】:
标签: django django-queryset django-orm