【问题标题】:Retrieving values from backwards relationship as a list of integers instead of list of tuples?从反向关系中检索值作为整数列表而不是元组列表?
【发布时间】:2018-07-04 01:15:50
【问题描述】:

现在我的“数据”模型中有一个名为“值”的列,其中包含来自“FOO”模型的 ForeignKey:

class FOO(models.Model):
    label = models.CharField(max_length=10, primary_key=True)
     ...

class Data(models.Model):
    label  = models.ForeignKey(Tickers, on_delete=models.CASCADE)
    Volume = models.FloatField(default=0)
    ...

我正在获取相关对象如下:

v = FOO.objects.get(pk='something')
vol = v.data_set.values_list('Volume')

然后得到一个元组列表,之后,我必须使用列表理解将其转换为列表整数。

有没有更优雅的方式直接获取整数列表?

谢谢

【问题讨论】:

  • 这与反向关系没有任何关系。 values_list 采用 flat=True 参数。
  • 感谢您的意见,我想我会在标题中提供尽可能多的细节
  • 只是澄清一下,如果vFOO class的实例,访问其相关对象应该是v.data_set.values_list('Volume')而不是v.foo_set.values_list('Volume'),对吗?
  • @AngelF 是的,感谢您的指出!错别字

标签: python django django-models django-queryset django-orm


【解决方案1】:

您可以使用参数flat=True 例如:

vol = v.foo_set.values_list('Volume', flat=True)

参考文档在https://docs.djangoproject.com/en/2.0/ref/models/querysets/#values-list

【讨论】:

    猜你喜欢
    • 2015-07-11
    • 1970-01-01
    • 2011-06-14
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2014-02-19
    相关资源
    最近更新 更多