【问题标题】:Django: select_related to a table vs table's fieldDjango:select_related到一个表vs表的字段
【发布时间】:2018-02-22 23:43:42
【问题描述】:

我有 2 个模型

class A(models.Model):
    val = models.IntegerField()

class B(models.Model):
    val2 = models.IntegerField()
    a = models.ForeignKey(A)

class C(models.Model):
    b = models.ForeignKey(B)
    val3 = models.IntegerField()

查询结果如何——

C.objects.select_related('B').all()

优于-

C.objects.select_related('B__val2').all()

如果不是,如何优化查询?

【问题讨论】:

    标签: django django-models django-select-related


    【解决方案1】:

    尝试通过子模型的小写过滤器过滤您需要的模型

    B.objects.filter(c__isnull=False)
    

    在此处阅读更多信息lookups-that-span-relationships

    【讨论】:

    • 过滤是另一种方法。但是,如果可以以某种方式引用模型的字段,那就更好了。
    猜你喜欢
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 2011-02-15
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    相关资源
    最近更新 更多