简体   繁体   English

Django ORM仅获得外键关系中的字段

[英]Django ORM get only field in foreignkey relationship

I have database tables like this 我有这样的数据库表

class Message(models.Model):
   text      = models.CharField(max_length=200)
   length    = models.CharField(max_length=100)
   receivers = models.IntegerField()

class Network(models.Model):
  name    = models.CharField(max_length=100)
  is_down = models.BooleanField(default=False)


class SMSLog(models.Model):
   receiver = models.CharField(max_length=200)
   message  = models.ForeignKey(Message, related_name='log')
   network  = models.ForeignKey(Network)
   status   = models.CharField(max_length=200)

I need just three fields in my query ie text, log__receiver and log__network__name. 我在查询中只需要三个字段,即文本,log__receiver和log__network__name。 I tried like this 我尝试过这样

Message.objects.all().prefetch_related('log').only('text', 'log__receiver', 'log__network__name')

The above query does not work. 上面的查询不起作用。 How to do query like above in django ORM ? 如何在Django ORM中执行上述查询?

根据我的评论:使用values而不是only

Message.objects.all().prefetch_related('log').values('text', 'log__receiver', 'log__network__name')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM