【发布时间】:2019-03-11 05:21:39
【问题描述】:
我想知道是否有捷径可以从 Django 模型中获取所有字段,并且只定义通过连接(或多个连接)检索的附加字段。
考虑以下模型:
class A(models.Model):
text = models.CharField(max_length=10, blank=True)
class B(models.Model):
a = models.ForeignKey(A, null=True, on_delete=models.CASCADE)
y = models.PositiveIntegerField(null=True)
现在我可以像这样使用values() 函数了
B.objects.values('y', 'a__text')
获取包含来自B 模型的指定值和来自A 模型的实际字段的元组。如果我只使用
B.objects.values()
我只得到包含来自 B 模型的字段的元组(即,y 和外键 id a)。假设B 和A 有很多字段,我对属于B 的所有字段感兴趣,但只对A. 中的单个字段感兴趣手动指定values() 中的所有字段名称调用是可能的,但繁琐且容易出错。
那么有没有办法指定我想要所有本地字段,但只需要(少数)特定的连接字段?
注意:我目前使用的是 Django 1.11,但如果解决方案仅适用于更新的版本,我也对此感兴趣。
【问题讨论】:
标签: python django django-queryset