查询集和模板 - 如何优化代码?

时间:2013-10-15 10:47:39

标签: django

如何优化代码?

这是我的观点和模板示例:

的观点:

def index(request):
    recomended = MyPost.objects.filter(recomented=True).order_by('add_date')
    posts = MyPost.objects.all()[:9]
    return render_to_response('main.html',{'recomended': recomended, 'posts':posts}, context_instance=RequestContext(request))

main.html中

<h1>Website</h1>
{% for r in recomended %}
    {{ r.title }}
    {{ r.url }}
{% endfor %}

{% for p in posts %}
    {{ p.title }}
    {{ p.url }}
{% endfor %}

1 个答案:

答案 0 :(得分:0)

要对标题中的问题给出一般答案,我会说:

  1. 在此之前确定您需要进行优化。是慢的还是你只是一个完美主义者?如果是后者,请使用您的时间来构建新功能。
  2. 为您的所有项目安装django-debug-toolbar。其中的SQL选项卡将告诉您是否正在运行异常大量的查询。该选项卡上的详细信息将告诉您生成查询的位置。
  3. 首先修复任何明显错误。
  4. 如果您的视图或模板中没有明显错误,请尝试使用select_relatedprefetch_related,如果您使用的是任何外键或多人关系。
  5. 如果所有其他方法都失败了,请尝试使用原始SQL。