Django:模板中显示的多维字典

2024-01-05

我有以下视图,但发现无法通过模板显示:

    sm = request.session.get('active_semester')

    semester_dates = SemesterDates.objects.filter(semester=sm)
    schedule = Schedule.objects.filter(semester=sm)
    student_enrolls = StudentEnroll.objects.filter(schedule__semester = sm).values_list('schedule__pk', 'student__family_member__first_name', 'student__family_member__last_name').order_by('student__family_member__last_name')
    schedule_array={}
    for a in schedule:
        schedule_array[a.id]={'course':a.course_catalog.course_name, 'students': [], 'teachers': []}

    for (pk, fname, lname) in student_enrolls:
        schedule_array[pk]['students'].append(fname + ' ' + lame)

这会产生以下输出。请注意,有两个“Arduino”课程,因为它们在不同的时间举行。因此,我使用 Schedule.pk 作为字典键来将它们分开。这样,我的班级列表对于本课程的每个实例都是不同的。

{2L: 
   {
    'students': [u'Jessica Ryan', u'Annie Ryan'], 
    'course': u'Arduino Programming', 
    'teachers': []
   }, 
4L: 
   {
    'students': [], 
    'course': u'Lego Animation 3rd-4th Grade', 
    'teachers': []
   }, 
5L: 
   {
    'students': [], 
    'course': u'Life skills - card games', 
    'teachers': []
   }, 
6L: 
   {
    'students': [], 
    'course': u'test', 
    'teachers': []
   }, 
7L: {
    'students': [u'Mark Ryan'], 
    'course': u'Arduino Programming', 
    'teachers': []
    }
}

在我的模板中,我有以下内容。这不起作用,但可以让您了解我正在尝试做的事情。

    <table class="table table-hover">
    {% for e in schedule %}
        <tr class="info">
          <td><h3>{{ e.course_catalog }}</h3></td>
        </tr>
        <tr>
          <td>
            {% for key in schedule_array.items|lookup:0 %}
              <h5>Dict Key: {{ key }} & Value: {{ value }}  {{e.pk}} </h5>
              {% for k2 in key.items %}
                k2: {{k2}} Students: {{k2.students}}<br>
                {% for k3 in k2 %}
                    {% for s in k3 %}
                      k3:{{s.students}}
                    {% endfor %}
                {% endfor %}
              endfor 2
              {% endfor %}
            endfor 1
            {% endfor %}
          </td>
        </tr>
    {% endfor %}
    </table>

我想做的是循环遍历我的日程对象。然后,我想在 Schedule_array 字典中查找主键(e.pk)。从那以后,我想循环浏览学生名单,然后与老师一起重复一遍。我无法让它发挥作用。不管我尝试什么。我知道我做错了,但找不到正确的方法来完成它。


弄清楚了:

<table class="table table-hover">
  {% for key, value in schedule_array.items %}
    <tr class="info">
      <td><h3>{{ value.course }}</h3></td>
    </tr>
    <tr>
      <td>
        {% for s in value.students %}
            k2: {{s}}
          {% endfor %}
      </td>
      <td>
        {% for t in value.teachers %}
            k2: {{t}}
          {% endfor %}
      </td>
    </tr>
{% endfor %}
</table>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django:模板中显示的多维字典 的相关文章

随机推荐

  • android sdk 的位置尚未在 mac os 的首选项中设置?

    我正在 mac os 中安装 Android SDK 和 Eclipse 每当我尝试开始新项目开发时 我都会收到错误android sdk 的位置尚未在首选项中设置 我该如何解决这个问题 您好 在 eclipse 中尝试一下 窗口 首选项
  • 如何在 SQLAlchemy 中创建 ENUM?

    from sqlalchemy import from migrate import meta MetaData race enums asian mideastern black nativeamerican indian pacific
  • 斯特伦在马洛克

    为什么这不返回任何警告 代码应该有什么问题 char str malloc strlen hello 1 strcpy str hello Thanks 为什么您会收到警告 该代码已损坏 因为您应该这样做strlen hello 1 not
  • 在Python中使用PyQt4向QTableWidget添加数据

    我想使用 python 中的 pyqt 将数据添加到表中 我发现我应该使用setItem 函数将数据添加到QTableWidget并给出行号和列号以及QTableWidgetItem 我做到了 但是当我想显示表格时 它完全是空的 也许我犯了
  • C++ MSVS,我应该做什么文件“清理”? (错误:D8037)

    在 C MSVS2008 中工作 我遇到了越来越烦人的问题 断点在错误的行上执行 未捕获等 这是一个包含数千个文件的非常大的工作空间 所以我 忍受了 我经历了 标准 的东西 干净 深度 干净 手动删除 idb pdb il 等 它没有解决
  • Angular 6 - 如何在单击子菜单项时使用 routerLinkActive 将父菜单项设置为活动状态?

    我正在使用 Angular 6 并且遇到了有关导航菜单的问题 当我单击子项目时 使用 routerLinkActive 时 只有子项目被设置为活动状态 而不是父项目 我想知道在 Angular 6 中选择子项时如何将父项类设置为活动状态 假
  • Chrome 扩展在调用 launchWebAuthFlow API 时导致 Microsoft Edge 浏览器崩溃

    我们有一个在 Chromium Edge 和 Chrome 浏览器上运行的 Chrome 扩展 在今天之前它工作得很好 但今天它在调用 API 后开始使 Microsoft Edge 崩溃 并且在调试时我们看到错误来自此 API https
  • 解析错误:语法错误,文件第 128 行出现意外的 $end

    嗨 这是代码 它是一个页面 用于在下拉列表中显示数据库中可用的表 然后在表中显示结果 执行此操作的实际代码 在中间 本身可以完美运行 但是当我尝试在其周围添加模板时 我会收到错误
  • Chrome 调试器中显示“警告:显示临时标头”

    I noticed a strange caution message when looking at downloaded resources using Google chrome inspector F12 显示临时标题 我发现了一些
  • 使用 Python 通过 ssh 执行命令

    我正在编写一个脚本来自动执行 Python 中的一些命令行命令 目前 我正在拨打这样的电话 cmd some unix command retcode subprocess call cmd shell True 但是 我需要在远程计算机上
  • 在 Terraform 中使用本地 Docker 镜像

    我想在 Terraform 中使用本地 Docker 映像 更具体地说 我有一个 Google Cloud Build Pipeline 它构建了一个 Docker 映像 我想将其部署到带有 Terraform 的 GCP Cloud Ru
  • 为什么 int j = 012 给出输出 10?

    在我的实际项目中偶然发生了这里是我修改的小程序 我不明白为什么它会给出输出10 public class Int public static void main String args int j 012 accidentaly i put
  • fusion 能看穿新型包装吗?

    Given newtype MyVec MyVec unVec Data Vector deriving Functor etc 这将创建 类似于 instance Functor MyVec where fmap f MyVec Data
  • 如何使用 django-tables2 从自定义 sql 渲染表?

    我正在使用 Django 和 django tables2 在 Web 界面中很好地表示 sql 查询 我有一个遗留的 sql 代码 通过标准 models py 定义它非常非常复杂 问题是 如何使用 django tables2 从自定义
  • ld:找不到 -lz 的库

    这让我发疯 当我尝试在模拟器上编译时 一切正常 但在设备上我收到此错误 ld library not found for lz Command Developer Platforms iPhoneOS platform Developer
  • 新版 Google Play 管理中心出现数以千计的奇怪崩溃

    Google Play 管理中心的 ANR 和崩溃部分最近已更新 可显示更多 ANR 和崩溃 自动从选择加入的用户收集 我在各种 Android 版本和设备上发现了很多奇怪的新崩溃 1 最常见的 每周出现数千次 没有任何类名的 ClassN
  • 什么是$cacheFactory?

    我完全找不到任何关于具体内容的信息 cacheFactory是什么以及它如何在您的应用程序中发挥作用 角度文档说 构造缓存对象并提供对它们的访问的工厂 cacheFactory http docs angularjs org api ng
  • 从数组中创建列表

    进行练习时遇到困难雄辩的Javascript书 http eloquentjavascript net 任务是从数组中创建一个列表 该列表是这样的 var list value 1 rest value 2 rest value 3 res
  • 样式输入文件和自动提交

    我试图有一个用户单击的单个文本链接 它会询问用户他 她想要上传哪个文件 然后自动将其发布到表单中 我怎样才能达到同样的效果 我知道我必须设置文件输入的样式 但如何让它在选择文件时自动发布 非常感谢 在页面中嵌入 javascript 是不好
  • Django:模板中显示的多维字典

    我有以下视图 但发现无法通过模板显示 sm request session get active semester semester dates SemesterDates objects filter semester sm schedu