Django - 在不查询数据库的情况下将对象转换为queryset
问题描述:
它经常发生在我的Django代码中,我必须对对象进行一些操作,然后以查询集的形式将它传递给其他函数。现在,我采用对象的id并查询数据库,这看起来像垃圾代码,因为我已经拥有所有数据。Django - 在不查询数据库的情况下将对象转换为queryset
obj = MyModelSerializer(data)
obj.save()
qs = MyModel.objects.filter(id = obj.id).values() # queries db just to get a queryset representation of a single object
return render(request, 'test.html', {'qs': qs})
有没有什么更好的方法来覆盖此代码:
更好的通过一个例子来说明?或者它完全可以吗?
答
假设test.html
模板需要一个QuerySet,那么你的代码很好用。重新提取数据效率低下,但除了通过数据库之外,没有书面的方式来填充QuerySet。
你不举一个例子test.html
但在很多情况下,你可以跳过查询集,并通过一个列表,而不是,例如:
obj = MyModelSerializer(data)
obj.save()
return render(request, 'test.html', {'qs': [obj]})
好了,谢谢你的回答,马特。但问题是我真的需要一个QUERY对象) –
欢迎您,Edgar。模板需要哪些方法从QuerySet中需要,也许有一种方法可以使另一个集合代替QuerySet。 –