Django REST API 从相关模型中的 ForeignKey 返回字段



使用以下模型:

class Tabs(models.Model):
    name = CharField(max_length=64)
    def __str__(self):
        return self.name
class DataLink(models.Model):
    data_id = models.ForeignKey(...)
    tabs_id = models.ForeignKey(Tabs, ...)
    def __str__(self):
        return "{} {}".format(self.data_id, self.tabs_id)

DataLink:                               Tabs:
  id  |  data_id  |  tabs_id       |      id  |  name  
------+-----------+-----------     |    ------+--------
  1   |     1     |    1           |      1   |  tab1
  2   |     1     |    2           |      2   |  tab2
  3   |     1     |    3           |      3   |  tab3
  4   |     2     |    1           |      4   |  tab4
  5   |     2     |    4           |      5   |  tab5

我需要在两个模型/表之间链接数据,以便对于给定的data_id,我可以使用 Tabs 表和tabs_id返回相应选项卡的列表。

例如:

data_id = 1会回来['tab1', 'tab2', 'tab3']

data_id = 2会回来['tab1', 'tab4']

这可能吗?如何?这是个坏主意吗?

如果你只想要一个像给定数据ID这样的扁平列表,你应该使用值列表和你想要的键值和flat=True kwarg。

它看起来像这样。在你的壳里试试。https://docs.djangoproject.com/en/1.9/ref/models/querysets/#values-list

DataLink.objects.filter(data_id=1).values_list('tabs_id',flat=True)

另外,你用 Django rest 标记了这个问题,但没有 RESTFUL 上下文。 这似乎只是一个 Django 问题。

最新更新