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

python mysql django django-orm

69 观看

1回复

1414 作者的声誉

我有这样的数据库表

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)

我只需要在查询中的三个字段,即文本,log__receiver和log__network__name。我尝试过这样

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

上面的查询不起作用。如何在Django ORM中执行上述查询?

作者: Bishnu Bhattarai 的来源 发布者: 2017 年 9 月 15 日

回应 1


1

1458 作者的声誉

决定

根据我的评论:使用values代替only

Message.objects.all().prefetch_related('log').values('text', 'log__receiver', 'log__network__name')
作者: The_Cthulhu_Kid 发布者: 2017 年 9 月 15 日
32x32