<legend id='n66mT'><style id='n66mT'><dir id='n66mT'><q id='n66mT'></q></dir></style></legend>
      <bdo id='n66mT'></bdo><ul id='n66mT'></ul>
  1. <small id='n66mT'></small><noframes id='n66mT'>

    1. <tfoot id='n66mT'></tfoot>
    2. <i id='n66mT'><tr id='n66mT'><dt id='n66mT'><q id='n66mT'><span id='n66mT'><b id='n66mT'><form id='n66mT'><ins id='n66mT'></ins><ul id='n66mT'></ul><sub id='n66mT'></sub></form><legend id='n66mT'></legend><bdo id='n66mT'><pre id='n66mT'><center id='n66mT'></center></pre></bdo></b><th id='n66mT'></th></span></q></dt></tr></i><div id='n66mT'><tfoot id='n66mT'></tfoot><dl id='n66mT'><fieldset id='n66mT'></fieldset></dl></div>
    3. 如何在Flask/JJJA中选择/缩小词典列表

      时间:2024-08-21
        <tbody id='I1PtK'></tbody>
        <i id='I1PtK'><tr id='I1PtK'><dt id='I1PtK'><q id='I1PtK'><span id='I1PtK'><b id='I1PtK'><form id='I1PtK'><ins id='I1PtK'></ins><ul id='I1PtK'></ul><sub id='I1PtK'></sub></form><legend id='I1PtK'></legend><bdo id='I1PtK'><pre id='I1PtK'><center id='I1PtK'></center></pre></bdo></b><th id='I1PtK'></th></span></q></dt></tr></i><div id='I1PtK'><tfoot id='I1PtK'></tfoot><dl id='I1PtK'><fieldset id='I1PtK'></fieldset></dl></div>
        <legend id='I1PtK'><style id='I1PtK'><dir id='I1PtK'><q id='I1PtK'></q></dir></style></legend>

        1. <small id='I1PtK'></small><noframes id='I1PtK'>

            <tfoot id='I1PtK'></tfoot>
              <bdo id='I1PtK'></bdo><ul id='I1PtK'></ul>
                本文介绍了如何在Flask/JJJA中选择/缩小词典列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我有一个带有词典列表的JJJA模板。秩序很重要。我想根据字典的键/值减少列表或查找值。这里有个例子:

                {%
                    set ordered_dicts = [
                        {
                            'id': 'foo',
                            'name': 'My name is Foo'
                        },
                        {
                            'id': 'bar',
                            'name': 'My name is Bar'
                        }
                    ]
                %}
                

                如果我有一个变量some_id = 'foo',我如何从JJJA模板中的ordered_dicts中取出'My name is Foo'

                我尝试了select()selectattr(),但根据文档找不到它们。以下是我尝试过的内容:

                {{ ordered_dicts|selectattr("id", "foo") }}
                

                输出:

                <generator object _select_or_reject at 0x10748d870>
                

                我认为我没有正确理解select()selectattr()的用法。

                我是否需要迭代列表并手动执行查找?


                更新:

                正如codegeek和Gipi指出的那样,我需要对生成器执行以下操作:

                {{ ordered_dicts|selectattr("id", "foo")|list }}
                

                产生的错误:TemplateRuntimeError: no test named 'foo',它阐明了selectattr()的工作方式。第二个参数必须是the builtin tests之一。据我所知,这些测试都不能让我检查与某个键关联的值是否与另一个值匹配。以下是我想做的事情:

                {{ ordered_dicts|selectattr("id", "sameas", "foo")|list }}
                

                但这不起作用,因为sameas测试检查两个对象在内存中是否真的是同一个对象,而不是两个字符串/数字是否相等。

                那么是否可以根据键/值比较测试来选择项目?

                推荐答案

                我刚才是这样回传的equalto

                app.jinja_env.tests['equalto'] = lambda value, other : value == other
                

                在this example from 2.8 docs工作之后:

                {{ users|selectattr("email", "equalto", "foo@bar.invalid") }}
                

                更新:Flask有一个用于注册测试的修饰符,语法稍显简洁:http://flask.pocoo.org/docs/api/#flask.Flask.template_test

                这篇关于如何在Flask/JJJA中选择/缩小词典列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:返回FastAPI主页 下一篇:可变内容的JJJA嵌套渲染

                相关文章

                  <bdo id='HWUGJ'></bdo><ul id='HWUGJ'></ul>
                <i id='HWUGJ'><tr id='HWUGJ'><dt id='HWUGJ'><q id='HWUGJ'><span id='HWUGJ'><b id='HWUGJ'><form id='HWUGJ'><ins id='HWUGJ'></ins><ul id='HWUGJ'></ul><sub id='HWUGJ'></sub></form><legend id='HWUGJ'></legend><bdo id='HWUGJ'><pre id='HWUGJ'><center id='HWUGJ'></center></pre></bdo></b><th id='HWUGJ'></th></span></q></dt></tr></i><div id='HWUGJ'><tfoot id='HWUGJ'></tfoot><dl id='HWUGJ'><fieldset id='HWUGJ'></fieldset></dl></div>
                <tfoot id='HWUGJ'></tfoot>

              • <small id='HWUGJ'></small><noframes id='HWUGJ'>

                1. <legend id='HWUGJ'><style id='HWUGJ'><dir id='HWUGJ'><q id='HWUGJ'></q></dir></style></legend>