Django 模板中的嵌套字典

nested dictionary in Django template

我正在使用 Django 模板,我遇到了一个嵌套字典的问题。

{'Engineering Mathematics 1': {'Nov Dec - 2017': <FieldFile: Previous/Nov_Dec_2017.pdf>}, 
 'Engineering Physics': {'Nov Dec - 2016': <FieldFile: Previous/Nov_Dec_2016.pdf>, 
                         'Nov Dec - 2018': <FieldFile: Previous/Nov_Dec_2018.pdf>, 
                         'Nov Dec - 2019': <FieldFile: Previous/Nov_Dec_2019.pdf>, 
                         'May June - 2017': <FieldFile: Previous/May_Jun_2017.pdf>, 
                         'May June - 2018': <FieldFile: Previous/May_Jun_2018.pdf>, 
                         'May June - 2019': <FieldFile: Previous/May_Jun_2019.pdf>}}

我试图通过嵌套 for 循环打印 HTML 页面中的所有数据。但它在 HTML 页面上不起作用。我已经在 Django shell 中尝试了代码并且它工作得很好但是当我来到 HTML 页面时它不工作。

HTML代码

{%for i, j in my_dict.items%} <----- from this line, code not working
     <h3> {{i}} </h3>
     {%for k, v in j.items%}
         {{k}} ---> {{v}}
     {%endfor%}
{%endfor%}

当我在 HTML 中尝试以下代码时,它会打印主词典 key_value

{%for i in my_dict%}
     <h3> {{i}} </h3>
{%endfor%}

上面代码的输出来了 'Engineering Mathematics 1' 'Engineering Physics'

你的代码在我的 django 上运行良好。

它打印出这些html。

Engineering Mathematics 1
Nov Dec - 2017 ---> <FieldFile: Previous/Nov_Dec_2017.pdf>
Engineering Physics
Nov Dec - 2016 ---> <FieldFile: Previous/Nov_Dec_2016.pdf> Nov Dec - 2018 ---> <FieldFile: Previous/Nov_Dec_2018.pdf> Nov Dec - 2019 ---> <FieldFile: Previous/Nov_Dec_2019.pdf> May June - 2017 ---> <FieldFile: Previous/May_Jun_2017.pdf> May June - 2018 ---> <FieldFile: Previous/May_Jun_2018.pdf> May June - 2019 ---> <FieldFile: Previous/May_Jun_2019.pdf>

观看次数:

def index(request):

    my_dict = {
        'Engineering Mathematics 1': {'Nov Dec - 2017': '<FieldFile: Previous/Nov_Dec_2017.pdf>'}, 
        'Engineering Physics': {
            'Nov Dec - 2016': '<FieldFile: Previous/Nov_Dec_2016.pdf>', 
            'Nov Dec - 2018': '<FieldFile: Previous/Nov_Dec_2018.pdf>', 
            'Nov Dec - 2019': '<FieldFile: Previous/Nov_Dec_2019.pdf>', 
            'May June - 2017': '<FieldFile: Previous/May_Jun_2017.pdf>', 
            'May June - 2018': '<FieldFile: Previous/May_Jun_2018.pdf>', 
            'May June - 2019': '<FieldFile: Previous/May_Jun_2019.pdf>',
        }
    }
    context = {
        'my_dict': my_dict,
    }
    return render(request, 'index.html', context)

模板

{%for i, j in my_dict.items%}
<h3> {{i}} </h3>
{%for k, v in j.items%}
{{k}} ---> {{v}}
{%endfor%}
{%endfor%}

我想也许您在视图或模板中有一些错别字或小错误?