Django 模板,如果项目 id 等于父循环名称,则循环遍历项目

2024-01-27

我正在尝试循环不同的区域,然后显示属于该区域的项目

Zone是一个模型,有一个名称和一个ForeignKey。 Planche 是一个以 Zone 作为外键的模型。

我正在循环区域以显示每个区域。在该循环中,我循环所有 Planches,并且只想显示那些将 Zone 作为外键的 Planches。

class Zones(models.Model):
    name = models.CharField(max_length=30)
    genre = models.ForeignKey(ZoneTypes, on_delete=models.CASCADE)

    def __str__(self):
        return self.name

class Planche(models.Model):
    pzone = models.ForeignKey(Zones, on_delete=models.CASCADE)
    ref = models.CharField(max_length=5, default="1")
    length = models.IntegerField()
    width = models.IntegerField()
    orientation = models.CharField(max_length=30)

    def __str__(self):
        return self.ref

Template

<div>
     <h1><a href="/">My list of planches</a></h1>
</div>
{% for z in zones %}
    <div>
        <h2><a href="/zone/{{ z.name }}">Zone name: {{ z.name }}</a></h2>
        {% for p in planches %}
        {% if p.pzone == z.name }
        <h1><a href="planche/{{ planche.ref }}">Ref: {{ p.ref }}</a></h1>
        <p>Length: {{ p.length }} - Width: {{ p.width }}</p>
        <p>Orientation: {{ p.orientation }}
        {% endif %}
        {% endfor %}
    </div>
{% endfor %}

{% if p.pzone = z.name %} 返回 False, 如果我只显示它们 {{ p.pzone }} 和 {{ z.name }} ,它们都会返回相同的字符串,但我猜它们不是相同的数据类型。我尝试将它们转换为 {% with %} 语句中的字符串,但我一直失败


我假设您想显示每个区域的所有木板。您可以使用related_name on the ForeignKey访问引用当前对象的项目。您没有在那里设置任何相关名称,因此它是默认名称:planche_set.

<div>
     <h1><a href="/">My list of planches</a></h1>
</div>
{% for z in zones %}
    <div>
        <h2><a href="/zone/{{ z.name }}">Zone name: {{ z.name }}</a></h2>
        {% for p in z.planche_set.all %}
        <h1><a href="planche/{{ planche.ref }}">Ref: {{ p.ref }}</a></h1>
        <p>Length: {{ p.length }} - Width: {{ p.width }}</p>
        <p>Orientation: {{ p.orientation }}
        {% endfor %}
    </div>
{% endfor %}

请注意,该方法将执行 N+1 次查询(一次用于选择您的区域,然后每个区域一次查询以检索每个区域的 Planches),除非您添加prefetch_related('planche')在您选择的视图中zones.

参考:

  • 关于向后关系的官方文档 https://docs.djangoproject.com/en/stable/topics/db/queries/#backwards-related-objects
  • Django 中的“related_name”有什么用? https://stackoverflow.com/questions/2642613/what-is-related-name-used-for-in-django
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 模板,如果项目 id 等于父循环名称,则循环遍历项目 的相关文章

随机推荐

  • 其他程序可以读取我的 NSUserDefaults 设置吗?

    在iPhone上 不包括越狱手机 其他应用程序可以读取您使用设置的值吗NSUserDefaults 我正在考虑为我们的服务保存客户的用户名 密码 并希望确保其安全 不可以 其他应用程序无法看到您的数据 也就是说 您可能应该考虑使用keych
  • 多线程 JDBC

    从架构上来说 处理 JDBC 多线程的最佳方法是什么 我有许多线程同时访问数据库 通过单个连接和语句 我收到以下错误消息 org postgresql util PSQLException 此结果集已关闭 我应该使用多个连接 多个语句还是有
  • 重新采样 Pandas 数据框并合并列中的字符串

    我想重新采样 pandas 数据框并将不同的函数应用于不同的列 问题是我无法正确处理带有字符串的列 我想应用一个将字符串与分隔符 例如 合并的函数 这是一个数据示例 import pandas as pd import numpy as n
  • 正确关闭 libUV 句柄

    我正在尝试找出如何修复使用 Valgrind 运行此程序时遇到的这些内存泄漏 泄漏发生在两个分配中nShell client main 但我不是 确定如何正确释放它们 我尝试在 nShell Connect 处释放它们 但它导致 libUV
  • 有没有办法逐句而不是逐行比较文件?

    只是想让 diff 更好地处理某些类型的文档 例如 使用 LaTeX 我可能有一个很长的段落 严格来说只有一行 但如果只更改一个句子 我不想看到整个段落 特别是如果我正在运行某种版本控制并且合著者与我编辑同一段落 但不是同一句子 我不希望这
  • 是否可以删除通过 Google Photos API 创建的照片或相册?

    即使程序具有完全访问权限 似乎也没有任何方法可以删除创建的照片或相册 删除支持对于 Photos API 的完善至关重要 缺乏删除功能确实限制了 API 的实用性 能够创建东西却要求用户手动删除它们是没有好处的 我是否忽略了某些事情并且有办
  • 使用 PowerShell 从 Outlook 读取最新电子邮件

    我正在尝试阅读主题行 自动化 的 Outlook 电子邮件 并使用自定义脚本进一步处理 下面的脚本读取主题行的电子邮件 但它读取主题为 自动化 的电子邮件的总数 我希望能够仅阅读最近的电子邮件并仅处理特定的电子邮件内容并将电子邮件标记为未读
  • Django/ python-social-auth:LinkedIn 额外数据在某些字段上返回 null

    我正在使用 python social auth 在 Django 中检索 LinkedIn 个人资料数据 a href Login with LinkedIn a 是使用 LinkedIn 登录的链接 SOCIAL AUTH LINKED
  • 如何更改 Rails 中使用的捆绑程序的版本?

    当我运行以下命令时 它会为我提供可用的捆绑程序安装版本 命令 gem list grep bundle output bundler 1 11 2 1 10 6 1 10 4 1 3 6 1 3 0 1 3 0 pre 我使用以下命令获得的
  • C#中如何查看谁使用了某个端口?

    如何确定哪个进程 哪个可执行文件正在使用我的本地主机的 80 端口 我想知道 例如它是否是 Apache Server 等 我们可以从 ipProperties GetActiveTcpListeners 获取一些信息吗 我只看到了本地端点
  • Android:使用贝塞尔曲线进行数字签名

    I am trying two draw digital signature using Bezier as show in above image when i touch and try to draw line then the re
  • 使用 Djoser 和 Django Rest Framework 激活帐户

    我在我的项目中使用 Djoser 进行身份验证 4天多来一直在努力添加电子邮件激活 但似乎未能很好地抓住它 因为文档对我来说有点难以理解 这是我的代码设置 py change auth model to custom model AUTH
  • 简单的多层神经网络实现[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 不久前 我开始了机器学习的冒险 在我学习的最后两年期间 我读了很多书 写了很多机器学习算法的代码 除了神经网络 这超出了我的范围 我对这个
  • HQL 与 SQL/Hibernate netbeans HQL 编辑器

    我正在自学休眠 并且很困惑为什么我不能只编写简单的 SQL 查询 我发现它比普通 SQL 我习惯的 使用起来更混乱 另外 我发现 NetBeans HQL 编辑器非常烦人 对我来说 在 HQL 中生成正确的查询比较困难 然后在 SQL 中生
  • 如何使用 Doxygen 和 Doxygen::Filter::Perl 生成 Perl 子例程的文档?

    我正在尝试弄清楚如何使用Doxygen Filter Perl https metacpan org pod Doxygen Filter Perl生成 Perl 文件的文档 我从一个非常简单的文件开始只是为了看看我是否可以让它工作 tes
  • Angular2 中的类型“{}”不存在属性

    我已经使用 http 调用获取数据 但是 我在编译时显示了上述错误 用户组件 ts this user saveUsers model then data gt if data success true this router naviga
  • 控制器:ctrlfmt 格式错误的控制器字符串“”。必须将 `__name__ 匹配为 __id__` 或 `__name__`

    在 rootes js 中 state main mydata url my data templateUrl app views pages my data html controller mydataCtrl 控制器 controlle
  • 如何关闭被杀死的程序打开的套接字?

    我有一个 Python 应用程序 它打开一个简单的 TCP 套接字来与单独主机上的另一个 Python 应用程序进行通信 有时程序要么出错 要么我直接杀死它 在任何一种情况下 套接字都可能会保持打开状态一段未知的时间 下次我去运行该程序时
  • 使用键/对表与 XML 字段和 XPath 的 SQL Server 性能对比

    我已经看到了关于这个主题的一些问题 但我正在寻找一些关于这个主题的见解性能差异这两种技术之间 例如 假设我正在记录事件日志 该日志将带有特定事件的键 值对的字典集进入系统 我将使用基本数据在事件表中记录一个条目 但随后我需要一种方法来链接其
  • Django 模板,如果项目 id 等于父循环名称,则循环遍历项目

    我正在尝试循环不同的区域 然后显示属于该区域的项目 Zone是一个模型 有一个名称和一个ForeignKey Planche 是一个以 Zone 作为外键的模型 我正在循环区域以显示每个区域 在该循环中 我循环所有 Planches 并且只