繁体   English   中英

优化Django 1.3的下拉列表

[英]Optimize a drop down for django 1.3

尝试优化正在使用1.3的Django应用程序。 迁移到最新的django还不是一个选择,因为它是一个巨大的应用程序。

因此,模板中包含以下代码:

<select id="item_product">
      {% for ip in items %}
      <option value="{{ ip.program.id }}/{{ ip.sector.id }}/">{{ ip }}</option>
      {% endfor %}
    </select>

这似乎会为每个选项生成数据库调用-仅加载带有下拉菜单和按钮的页面变得非常慢! 实际上,用虚拟字符串替换选项值会立即加载页面。

该视图非常简单:

@render_to('pick_item.html')
def pick_item(request):
    person = request.user.get_profile()
    items = ItemProduct.objects.filter(program__in=person.programs)
    return {'items': items }

并且此代码返回速度非常快。

如何为django 1.3优化此代码,以便下拉选项更有效地提供我需要的ID?

如果您只需要ID:

    <select id="item_product">
    {% for ip in items %}
        <option value="{{ ip.program_id }}/{{ ip.sector_id }}/">{{ ip }}</option>
    {% endfor %}
    </select>

如果您需要更复杂的东西:

    @render_to('pick_item.html')
    def pick_item(request):
        person = request.user.get_profile()
        items = ItemProduct.objects.filter(program__in=person.programs).select_related('program', 'sector')
        return {'items': items }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM