首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django模型查询调优

Django模型查询调优
EN

Stack Overflow用户
提问于 2016-07-12 03:58:20
回答 0查看 42关注 0票数 1

我想减少my_filter_function()中模板过滤器调用的数量。因为它是在一个模板的两个for循环中使用的。请看下面的代码设置。

代码语言:javascript
复制
class ModelA(models.model):
    models.ForeignKey(OtherModel1)

class ModelB(models.model):
    models.ForeignKey(OtherModel2)

class ModelC(models.Model):
    a = models.ForeignKey(ModelA)
    b = models.ForeignKey(ModelB)

def my_views(request):
       return render(request, 'my_template.html', {
        'a_list': ModelA.objects.all(),
        'b_list': ModelB.objects.all(),
    })

在我的模板中,我有

代码语言:javascript
复制
{% for a in a_list %}
   {% for b in b_list %}
             {% with b|my_filter_function:a as my_val %}
                       Val: {{my_val}}
             {% endwith %}
   {% endfor %}
{% endfor %}

上面的模板将调用my_filter_function过滤器函数,我需要找到另一种方法来减少my_filter_function函数调用的数量,因为过滤器函数现在每个模板访问数据库数千次。

代码语言:javascript
复制
@register.filter
def my_filter_function:(b, a):
        z = ModelC.objects.filter(a=a, b=b)
        if z.count() > 0:
            return "OK"
        else:
            return "Not OK"
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38315188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档