当前位置: 首页 > 面试题库 >

Django:使用Django ORM实现JOIN?

龚镜
2023-03-14
问题内容

我在Django中使用以下模型构建了一个问答类型的网站:

class Question(models.Model):
    title = models.CharField(max_length=70)
    details = models.TextField()

class Answer(models.Model):
    question_id = IntegerField()
    details = models.TextField()

我需要显示一个特定的问题及其答案。通常,我需要2个查询才能做到这一点:

Question.objects.get(id=1)
Answer.objects.get(question_id=1)[:10]

我希望使用一个查询来检索所有内容。在MySQL中,它将是:

SELECT *
FROM Question JOIN Answer ON Question.id=Answer.question_id
WHERE Question.id=1
LIMIT 10

无论如何,我可以通过Django的ORM做到这一点吗?extra()在这种情况下会有所帮助吗?


问题答案:

这正是select_related()所做的。唯一的问题是必须从Answer模型而不是Question开始,但是结果是相同的:

answers = Answer.objects.filter(question_id=1).select_related() 

现在,每个答案对象都有一个预取的“问题”属性,对其进行访问不会再影响数据库。



 类似资料:
  • 问题内容: 我想使用Django为我们当前使用的多个应用程序实现单一登录(SSO)。如何使用Django实现SSO?是否有可用于实施SSO的Django软件包? 请帮忙谢谢 问题答案: 我们正在使用OpenAM。 http://forgerock.com/openam.html OpenAM Cookie表示用户已通过身份验证。 为此的身份验证后端非常简单。少于50行代码。 https://doc

  • 本文向大家介绍使用Django的JsonResponse返回数据的实现,包括了使用Django的JsonResponse返回数据的实现的使用技巧和注意事项,需要的朋友参考一下 urls.py 在views.py中创建show_view函数 到此这篇关于使用Django的JsonResponse返回数据的实现的文章就介绍到这了,更多相关Django JsonResponse内容请搜索呐喊教程以前的文

  • 本文向大家介绍Python Django使用forms来实现评论功能,包括了Python Django使用forms来实现评论功能的使用技巧和注意事项,需要的朋友参考一下 貌似Django从版本1.6开始就放弃了对自带的comments的使用,具体原因未查,但是现在使用Django的内部的模块也可以实现评论功能,那就是借助于forms模块,下面是我的一个小例子。 环境准备  •操作系统 : win

  • 本文向大家介绍django实现用户注册实例讲解,包括了django实现用户注册实例讲解的使用技巧和注意事项,需要的朋友参考一下 创建一个apps包 专门来放子应用 创建users子应用 处理用户事务 追加导包路径 在settings中用 print(sys.path) 查看现有导包路径 但是这样过于low 换成下面这样 这样就可以简化导包方式 自定义用户模型类 django自带的用户模型类User

  • 问题内容: 我有一个关于django的问题。 我这里有许多对多模型 对于创建的1个购物车对象,我可以插入尽可能多的新TransactionDetail对象(产品和金额)。我的问题是。如何实现触发器?我想要的是每当创建交易明细时,我希望产品的存货数量减去交易明细中的数量。 我已经阅读了有关post_save()的信息,但不确定如何实现。也许像这样 什么时候: 问题答案: 如果你真的想使用信号来实现这

  • 本文向大家介绍Django 使用 cookie 实现简单的用户管理功能,包括了Django 使用 cookie 实现简单的用户管理功能的使用技巧和注意事项,需要的朋友参考一下 Cookie: 1.保存在用户浏览器 2.可以主动清除 3.可以被伪造 4.跨域名 Cookie 不共享 创建一个项目:user_manager 和应用: app01 创建数据库,添加 models.py 在 templat