首页 > 解决方案 > 从 django 模板标签获取属性

问题描述

我有一个简单的标签,我从中返回rendered_payload它有两个属性htmlreduxState

@register.simple_tag
def header_and_sidebar():
    user = {}

    # Here's what we've got so far
    render_assets = {
        'url': '/policy-portal/list',#request.path_info,
        'user': user
    }

    try:
        res = requests.post('http://docker.for.mac.localhost:8000/' + 'render', #settings.FRONTEND_URL
                        json=render_assets,
                        headers={'content_type': 'application/json'})
        rendered_payload = res.json()
    except Exception as e:
        print(e)
        ...

    return rendered_payload

当我尝试在模板中使用标签时:

     {% load project_tags %}
      {% header_and_sidebar.html %}

这错误了:

Invalid block tag on line 164: 'header_and_sidebar.html'. Did you forget to register or load this tag?

我应该如何访问嵌套属性?当我不尝试访问嵌套属性时,此设置工作正常,因此我知道它大部分配置正确。

这是我的settings.py,可以很好地衡量:

TEMPLATES = [
    {
       ...
        'OPTIONS': {
            'libraries': {
                'project_tags': 'base.templatetags.custom_tags',
            },
        ...
     }

标签: djangodjango-templatestemplatetags

解决方案


您可以将模板标签的结果存储在变量中,然后访问它:

{% header_and_sidebar as data %}{{ data.html }}

推荐阅读