我有这两个模型:
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类的对象让我们称之为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
?
答案 0 :(得分:0)
您可以使用select_related并将其与值链接。
Command.objects.select_related('client').values('name')
这将输出为dict,可以轻松引用。
答案 1 :(得分:0)
Command.objects.values('client__name')
使用双下划线访问相关实体