热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DjangoForeignKey关联查询

DjangoForeignKey关联查询-今天用到ForeignKey忘记怎么用了,网上查了一大堆写的乱七八糟,最后终于登录了django官网看了以下文档,真是写的简单明了,搞不懂

今天用到ForeignKey忘记怎么用了,网上查了一大堆写的乱七八糟,最后终于登录了django官网看了以下文档,真是写的简单明了,搞不懂网上一些教程非要将简单的东西复杂化。

根据官网的解释,我再来简化以下

第一步创建模型:

# 一级分类表
class TopCategory(BaseModel):
    title_zh = models.CharField(max_length=32, verbose_name='中文标题')

# 二级分类
class CategoryTag(BaseModel):
    title_zh = models.CharField(max_length=32, verbose_name='中文标题')
    top_category = models.ForeignKey(to=TopCategory, on_delete=models.DO_NOTHING, related_name='topcategory', verbose_name='关联外键')

反向查询 就是用被关联的模型(一级分类)查询关联的模型(二级分类)

#获取自身id为1的数据,例如一级分类下的:动物
row_data = models.TopCategory.objects.get(id=1)

#然后查看一级分类下有哪些二级分类,动物->乌龟,兔子,小鸟,麻雀...
res = row_data.topcategory.all()

正向查询 和上面反过来

#获取获取所有二级分类数据
row_data = models.CategoryTag.objects.all()

#然后查询这些二级分类都对应者那些一级分类例如[水,华,冰块,石头]->自然,[老虎,狮子]->动物
res = row_data.top_category 
#直接获取一级分类名称,如果需要获取ID学写top_category_id

推荐阅读
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文详细介绍了钩子(hook)的概念、原理及其在编程中的实际应用。通过对比回调函数和注册函数,解释了钩子的工作机制,并提供了具体的Python示例代码,帮助读者更好地理解和掌握这一重要编程工具。 ... [详细]
  • 1.增加视图函数#Http:127.0.0.1booksdefshow_books(request):booksBookInfo.objects.all()returnrend ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 本文介绍如何在Spring Boot项目中集成Redis,并通过具体案例展示其配置和使用方法。包括添加依赖、配置连接信息、自定义序列化方式以及实现仓储接口。 ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
author-avatar
白杨树问天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有