我正在尝试优化以下Django视图。
test_id
所以我有两个模特。
MyModel
id
订购MyModel
的{{1}}列中获取唯一值。MyModel
中的两个参数。它们是test_id
和created_at
目前我可以看到以下改进方法。
我对Django比较新。所以对我应该如何进行的任何帮助或我应该阅读的任何链接都将不胜感激。
答案 0 :(得分:0)
我建议修改你的观点如下:
def test_view(request, username):
msgs = MyModel.objects.filter(
name=username, created_at__range=[start_date, end_date]
).order_by('-id').values_list('test_id', flat=True)
arr = TestModel.objects.filter(id__in=msgs)
return render(request, "test.html", {'context': arr})
这样你就可以避免在一次查询中获取所需的所有TestModel。此外,在MyModel查询中使用values_list将允许节省内存,因为除了test_id之外你不使用任何东西。