我有两个模型:ActorModel 和 FilmModel,加入方式如下:
FilmModel(models.Model):
actors = models.ManyToManyField(Actor, blank=True, related_name='film_actors')
ActorModel(models.Model):
name = models.CharField(max_length=40)
def __str__(self):
return self.imdb_id
我想过滤我的 ActorModel 中与 FilmModel 有超过 5 个连接的任何实例。我可以这样做:
actors = ActorModel.objects.all()
more_than_five_films = []
for actor in actors:
actor_film_list = FilmModel.objects.filter(actors__imdb_id=str(name))
if len(actor_film_list)>5:
more_than_five_films.append(actor)
然而,使用上面的代码会消耗大量的处理能力。有没有更有效的方法来查找具有超过 5 个连接的参与者?例如,我可以在过滤阶段执行此操作吗?
慕后森
相关分类