从多个模型Django中获取多行

时间:2017-06-22 05:47:58

标签: django database model

我有这个项目,我需要从视图中的多个模型中获取多个对象。我可以通过for循环来做到这一点,但我想我不应该在每个循环中命中数据库。我应该使用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。我得到多个对象,waitForReadyRead()没用。有什么建议。

1 个答案:

答案 0 :(得分:1)

您需要创建此查询集:

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

此查询集将生成连接用户的SQL和来自db

的A数据

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

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

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

顺便说一句,我会重命名属性" id"在模型B到" a"。