【问题标题】:django templates are not renderingdjango 模板不呈现
【发布时间】:2015-12-18 02:35:23
【问题描述】:

我是 django 的新手。我无法使用二级或多级字典呈现模板。以下是我的视图和模板代码。

view.py 中的代码

myList = {
    'ParentABC': {
        'ABC' : '#'
        }
    }
return render_to_response('index.html', myList)

我尝试了两个不同的模板,但没有运气: 模板1-

<ul class="collapsible collapsible-accordion">
        {% for eachCategory in myList %}
        <li class="bold"><a class="collapsible-header  waves-effect waves-teal">{{ eachCategory }}</a>
              <div class="collapsible-body" style="">
                <ul>
                {% for subCat in myList.eachCategory %}
                  <li><a href="#">{{ subCat  }}</a></li>
                {% endfor %}
                </ul>
              </div>
        </li>
        {% endfor %}
        </ul>

模板 2-

<ul class="collapsible collapsible-accordion">
    {% for category,value  in myList.items %}
    <li class="bold"><a class="collapsible-header  waves-effect waves-teal">{{ category }}</a>
          <div class="collapsible-body" style="">
            <ul>
            {% for subcategory,value1 in value.items %}
              <li><a href="#">{{ subcategory }}</a></li>
            {% endfor %}
            </ul>
          </div>
    </li>
    {% endfor %}
    </ul>

渲染后我总是低于 html:

<ul class="collapsible collapsible-accordion">

        </ul>

请帮助我。

【问题讨论】:

  • 请为媒体发布您的 settings.py
  • 它是默认的 settings.py。我只在 settings.py 中添加了以下几行到服务器静态文件。 STATICFILES_DIRS = [ BASE_DIR +'/myproject/static/' ] 我不确定 setting.py 会如何影响我的问题。

标签: python django templates


【解决方案1】:

使用以下代码示例

 myList = {
        'myList' : {
    'ParentABC1': {
    'ABC' : '#',
    'DEF' : '#'
    },
    'ParentABC2': {
    'ABC' : '#',
    'DEF' : '#'
    },
        }

    }

<ul class="collapsible collapsible-accordion">
        {% for eachCategory, value in myList.items %}
        <li class="bold"><a class="collapsible-header  waves-effect waves-teal">{{ eachCategory }}</a>
              <div class="collapsible-body" style="">
                <ul>
                {% for subCat in value %}
                  <li><a href="#">{{ subCat  }}</a></li>
        {% endfor %}
        </ul>
              </div>
        </li>
        {% endfor %}
</ul>

【讨论】:

    【解决方案2】:

    如果您想使用键和值对对象进行迭代,请使用{% for key, value in object.iteritems %},或者只使用{% for value in object.items %}

    有点像

    <ul class="collapsible collapsible-accordion">
        {% for eachCategory, catValue in myList.iteritems %}
        <li class="bold"><a class="collapsible-header  waves-effect waves-teal">{{ eachCategory }}</a>
              <div class="collapsible-body" style="">
                <ul>
                {% for subCat in catValue.items %}
                  <li><a href="#">{{ subCat  }}</a></li>
                {% endfor %}
                </ul>
              </div>
        </li>
        {% endfor %}
        </ul>
    

    【讨论】:

    • Django 模板不支持参数,所以使用() 会导致模板渲染失败。
    • @all - 对不起..我在我的问题中提供了相同的模板。我已经在使用您提供的几乎相同的模板。你能在那里犯一些错误吗?
    猜你喜欢
    • 1970-01-01
    • 2021-09-05
    • 2021-08-17
    • 2019-08-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多