从相关对象的Django
问题描述:
我有这两款车型只选择特定的字段:从相关对象的Django
class Command(models.Model):
client = models.ForeignKey(Client)
carrier = models.ForeignKey(Carrier, null=True, blank=True)
和
class Client(models.Model):
name = models.CharField(max_length=10)
some other fields ...
我有一个命令类的一个对象,让我们把它叫做command
,让我们假设我有这对象已经
我想访问此命令客户端的name
我可以这样做:
command.client.name
但产生的SQL表达式是要获取客户端模型的所有领域,而我只需要name
我能做到这一点来解决这个问题:
from client.models import Client
name = Client.objects.only("name").get(command=command).name
但是,这是很长的类型,任何快速的方式来做到这一点?像command.client.only("name").name
?
答
您可以使用select_related进行此操作,并将其与值链接起来。
Command.objects.select_related('client').values('name')
这将输出为一个可以轻松引用的字典。
怎么能是'Client'是同一型号'Client'的'ForeignKey'的'name'? – Rajez
谢谢我的错误,它被纠正了,名字是CharField – paul