gpt4 book ai didi

django - 从多个模型 Django 中获取多行

转载 作者:搜寻专家 更新时间:2023-10-30 23:34:38 24 4
gpt4 key购买 nike

我有这个项目,我需要从 View 中的多个模型中获取多个对象。我可以通过 for 循环来做到这一点,但我认为我不应该在每个循环中都访问数据库。我应该使用 prefetch_related 吗?或者我应该知道其他方法来检索它们。

例如:

class A(models.Model):
title_name=models.CharField(...)
id=models.AutoField(pk=True)

class B(models.Model):
user=models.ForeignKey(User,models.ON_CASCADE=True)
user_status=models.CharField(...)
id=models.ForeignKey(A, models.ON_CASCADE=True)

我需要显示 user_status, user 和关联的 title_name。我得到多个对象,select_related 将没有用。有什么建议。

最佳答案

你需要制作这个查询集:

B.objects.all().select_related('user', 'id')

此查询集将生成连接用户和来自数据库的 A 数据的 sql

接下来,在模型B中做一个属性:

@property
def title_name(self):
return self.id.title_name

最后,您将获得向数据库发出一个 SQL 请求并返回您需要的所有数据的查询集。

顺便说一下,我会将模型 B 中的属性“id”重命名为“a”。

关于django - 从多个模型 Django 中获取多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com