18910140161

Python-Django自定义筛选器标记和访问查询-堆栈溢出

顺晟科技

2022-10-19 14:02:46

227

hi需要一些关于Django自定义筛选器标记的帮助,非常感谢!

我已经注册了一个过滤器标记来访问HTML文件中的字典,如下所示:

DIRECTORY - blog>templatetags>post_extras.py

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

名为dict_post的字典,键是post id,值是查询集。假设获取字典键为1:

DIRECTORY - blog>templatetags>post_extras.py

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

它在查询集中返回'title'和'date_post'

DIRECTORY - blog>templatetags>post_extras.py

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

它对筛选器标记工作得很好,但是当我想访问筛选器标记之后的某个查询时,它会返回错误。如何只获得称号?我尝试了下面的代码,但返回错误

DIRECTORY - blog>templatetags>post_extras.py

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

错误:

DIRECTORY - blog>templatetags>post_extras.py

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

正在寻求帮助,谢谢!


顺晟科技:

您可以使用模板标记[Django-doc]:

DIRECTORY - blog>templatetags>post_extras.py

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

因为我们知道密钥是(以后可能会改变),所以我们可以使用:

DIRECTORY - blog>templatetags>post_extras.py

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

话虽如此,通常情况下,“准备”视图中的数据的方式会更好,这样您就不需要使用变量键执行字典查找。Django模板语言被故意限制,以防止人们在模板中编写业务逻辑。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航