我想在django-tagging中使用related_to()
函数,我传递的查询集如下所示:
Chapter.objects.all().order_by('?')[:5] #the important thing here is the "[:5]"
我的问题是这个功能显然使用了in_bunk()
功能而你Cannot use 'limit' or 'offset' with in_bulk
如何限制我的查询集只传递5个对象,同时使用in_bunk?
我知道related_to()允许你传递变量num
(它应该返回的对象数),但我不希望它每次都输出相同的查询集。所以我提出了随机排序并在传递给函数之前将其限制为的想法。但正如您所看到的:有限的查询集和bunk_it并不是很好地结合在一起。
答案 0 :(得分:0)
我找到了一个解决方案,虽然它不是最好的,虽然它处理不必要的数据。我只是遍历与当前实例相关的模型的所有实例,然后我随机排序并切片:
related_objects = instance.related_to(Model) # all related objects are found
related_objects = random.sample(related_objects,5) # .. and afterwards sorted randomly and sliced