当前位置: 首页 > ds >正文

一对多 多对一

关键解释

  1. 反向关系名称:(主要用于一对多中的一表并且没有定义相关外检字段)

    • 你的 Book 模型中未指定 related_name(相关名称),所以默认反向查询名称为 book_set(格式:关联模型小写_set)。
       

        <td>  {# 遍历该出版社下的所有书籍 #}{# 反向查询该出版社的所有书籍 #}{% for book in press.book_set.all %}{{ book.bookname }}(价格:{{ book.bookprice }}){% if not forloop.last %}<br>{% endif %}{% empty %}<span style="color: gray;">该出版社暂无书籍</span>{% endfor %}<td>

    • 如果希望自定义名称(如 books),可以在外键中添加 related_name='books',模板中则用 press.books.all

    • 这里是多对一中的多表(book表已经定义相关联的字段了)

        {#                forloop.counter  循环多少次 编号会随之变化  #}<td>{{ book.bookname }}</td><td>{{ book.bookprice }}</td><td>{{ book.bookauthor }}</td><td>{{ book.press.pressname }}</td><td>{% if book.bookimg %}<img src="{{ book.bookimg }}" alt="暂无图片" style="height: 100px">{% else %}<span class="text-muted">暂无图片</span>{% endif %}</td>


       

  2. 模板语法

    • press.book_set.all:获取该出版社关联的所有书籍。

    • {% empty %}:如果没有书籍时显示占位内容。

    • forloop.last:判断是否为最后一次循环,避免最后一个书籍后显示多余的 <br>

  3. 字段显示

    • 根据你的 Book 模型字段,可以显示 booknamebookpricebookauthor 或 bookimg

传参问题:
book项目中bookyemian的详情点击后

<!-- 修改原来的详情按钮 --><a href="{% url 'bookshopping' book.id %}" class="btn btn-detail"><i class="fa fa-info-circle"></i> 详情</a>

url.py

 path("bookshopping/<int:book_id>", views.bookshopping, name="bookshopping")

view.py返回数据对象

def bookshopping(request,book_id):book = Book.objects.get(id=book_id)return render(request, "book/bookshopping.html", {"book": book})


 

http://www.xdnf.cn/news/9517.html

相关文章:

  • 调制与解调技术科普|通信系统是如何传送信息?如何还原出原始信息?【无线通信小百科】
  • 【贪心 逆向思考 并集查找 数学归纳法】P7162 [COCI 2020/2021 #2] Sjekira|普及+
  • 【RP2350】香瓜树莓派RP2350之USB HID
  • 《P1763 埃及分数》
  • Acrobat Reader 无法在 Windows 11及10 中打开的5种修复方法
  • 数据库表添加索引
  • STM32 Modbus RTU从机开发实战:核心实现与五大调试陷阱解析
  • 什么是Windows内存压缩? win10/11系统启用和禁用内存压缩的教程
  • HTB-Puppy
  • DAY 38 Dataset和Dataloader类
  • Linux网络编程(一)
  • 医疗影像检测系统设计与实现
  • open3d保存为pcl可以读取的ply点云
  • Windows 子系统 WSL 中宝塔安装 supervisor 启动失败解决方案
  • 《计算机组成原理》第 1 章 - 计算机系统概论
  • 工控安全审计与网络流量监控系统的协同防御
  • ‌CDGP|企业数据治理:莫让“打补丁”成为常态
  • STL容器使用中的常见问题解析
  • 辛格迪客户案例 | 博福-益普生实施YonSuite,同步开展计算机化系统验证(CSV)
  • Druid连接池使用和源码分析
  • 为Windows用户量身定制的监控方案
  • 通过 API 获取 1688 平台订单接口的技术实现
  • LeetCode 118 题解--杨辉三角
  • 软考 系统架构设计师系列知识点之杂项集萃(77)
  • 1435系列信号发生器
  • 2025年上半年软考系统架构设计师--案例分析试题与答案
  • python 生成复杂表格,自动分页等功能
  • 自动驾驶规划控制教程——不确定环境下的决策规划
  • 火柴INIBOX矿机实测850M算力即将改写Initverse挖矿规则
  • 模型可信度