python - 我尝试用另一个定义中的另一个字典迭代嵌套字典,但 Django 不渲染它

标签 python django dictionary

我的模板接收以下一般项目列表的嵌套字典以及另一个定义中的另一个标签字典以及页面 View 的定义:

from django.views import View
class ProjectsView(Mixin, View):
  def get(self, request, id = None, *args, **kwargs):
    template = "pages/projects.html"
    context = {
      'title': "Projetos",
    }
    return render(request, template, context)
  
  def general_projects_list(self, request, id = None, *args, **kwargs):
    template = "pages/projects.html"
    projects = {
      0:
        {
          "Name": "Suru++ Pastas",
          "Description": "Um executável em Bash de Unix e de BSD para substituir a cor das pastas dos temas de ícones Adwaita++, Suru++ e Yaru++",
          "Colaboration": "Clonei o projeto o qual desenvolvi a fim de torná-lo compatível com os temas de ícones",
          "Link": "https://github.com/gusbemacbe/suru-plus-folders",
          "Tags": ["Makefile", "Shell"]
        },
      1:
        {
          "Name": "Icons Missing Request",
          "Description": "Um executável que lê o tema de ícone utilizado e os arquivos de desktop de Linux para localizar se os ícones dos arquivos de desktop não existem no tema de ícone e gera uma lista de solicitação de ícones perdidos",
          "Colaboration": "Colaborei com o projeto, traduzindo o executável em diversas línguas estrangeiras para facilitar os usuários não familiares com a língua inglesa no terminal",
          "Link": "https://github.com/gusbemacbe/icons-missing-script",
          "Tags": ["Shell", "Vala"]
        },
      2:
        {
          "Name": "Ooomox",
          "Description": "Um aplicativo que gera as diferentes variações de cor para Linux, como GTK2, GTK3, GTK4 e terminal, e tambem modifica as cores dos ícones e das pastas dos temas de ícones para seu",
          "Colaboration": "Colaborei com o projeto, adicionando as novas extensões de Adwaita++, Suru++ e Yaru++, e traduzindo o aplicativo em espanhol, francês, italiano, neerlandês e português",
          "Link": "https://github.com/gusbemacbe/icons-missing-script",
          "Tags": ["Makefile", "Python", "Shell"]
        },
    }
    
    general_projects_dict = { 'projects': projects }
    return render(request, template, { general_projects_dict })

我在迭代时遇到问题。例如,当我使用以下代码时,

{% for value in general_projects_dict %}
    {% for second_key, second_value in value.items %} {% comment %} 0, 1, 2, etc. {% endcomment %}
      <h3>{{second_value.Name}}</h3> {% comment %} Name {% endcomment %}
      <p>{{second_value.Description}}</p> {% comment %} Description {% endcomment %}
      <p>{{second_value.Colaboration}}</p> {% comment %} Colaboration {% endcomment %}
      <p><b>Etiquetas: </b>
      {% for tag in second_value.Tags %}
        <span>{{tag}}</span> {% comment %} Tags {% endcomment %}
      {% endfor %}
      <a href="{{value.Link}}" class="cyberpunk2077">Visitar</a> {% comment %} Link {% endcomment %}
    {% endfor %}
  </p>
{% endfor %}

相反,结果不会出现在页面中或者 Django 不会渲染它。

有人至少可以帮助弄清楚如何正确迭代这个嵌套字典吗?

最佳答案

class ProjectsView(Mixin, View):
 
    def get(self, request, id=None, *args, **kwargs):
        template = "pages/projects.html"
        context = {
            'title': 'Projetos',
            'projects': self.general_projects_list()
        }
        return render(request, template, context)
 
    def general_projects_list(self):
        projects = {
            0:
            {
                "Name": "Suru++ Pastas",
                "Description": "Um executável em Bash de Unix e de BSD para substituir a cor das pastas dos temas de ícones Adwaita++, Suru++ e Yaru++",
                "Colaboration": "Clonei o projeto o qual desenvolvi a fim de torná-lo compatível com os temas de ícones",
                "Link": "https://github.com/gusbemacbe/suru-plus-folders",
                "Tags": ["Makefile", "Shell"]
            },
            1:
            {
                "Name": "Icons Missing Request",
                "Description": "Um executável que lê o tema de ícone utilizado e os arquivos de desktop de Linux para localizar se os ícones dos arquivos de desktop não existem no tema de ícone e gera uma lista de solicitação de ícones perdidos",
                "Colaboration": "Colaborei com o projeto, traduzindo o executável em diversas línguas estrangeiras para facilitar os usuários não familiares com a língua inglesa no terminal",
                "Link": "https://github.com/gusbemacbe/icons-missing-script",
                "Tags": ["Shell", "Vala"]
            },
            2:
            {
                "Name": "Ooomox",
                "Description": "Um aplicativo que gera as diferentes variações de cor para Linux, como GTK2, GTK3, GTK4 e terminal, e tambem modifica as cores dos ícones e das pastas dos temas de ícones para seu",
                "Colaboration": "Colaborei com o projeto, adicionando as novas extensões de Adwaita++, Suru++ e Yaru++, e traduzindo o aplicativo em espanhol, francês, italiano, neerlandês e português",
                "Link": "https://github.com/gusbemacbe/icons-missing-script",
                "Tags": ["Makefile", "Python", "Shell"]
            },
        }
        return projects

关于python - 我尝试用另一个定义中的另一个字典迭代嵌套字典,但 Django 不渲染它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67679262/

相关文章:

python - Lisp 的 apply 和 funcall 与 Python 的 apply

python - 使用 Gekko 求解固定端点的最优控制

python - 在代码级别或 Nginx 级别保护 OTP API 的安全?

python - 范围过滤器在 django 中不起作用

c++ - 重载 >> 运算符并使用自定义类型的初始化列表进行初始化

python - 构建值为单词平均长度的字典

python - pytorch/numpy 中具有任意和可变维数的部分切片

python - 使用 HTML :receiving error message of expected else statement 运行 Flask 环境

python - 用于简单 Web 应用程序的 Django

python - 对键值列表进行排序,其中值是字典,并且需要对字典中的 STRING 值进行排序