Django 视图和 manyToMany 的序列化器使用 through

问题描述 投票:0回答:0

我有以下结构: 每个帐户都有商店列表,每个商店都有行列表。

型号:

class Account(models.Model):
    name = models.CharField(max_length=50, unique=True)
    lines = models.ManyToManyField('Line', through='AccountLine', related_name='accounts')


class Store(models.Model):       
    type = models.CharField(max_length=255, unique=True)
    name = models.CharField(max_length=255)


class ExtendedData(models.Model):
    x1 = models.BooleanField(default=False)
    x2 = models.IntegerField(default=0)


class Line(models.Model):
    name = models.CharField(max_length=255)
    store = models.ForeignKey('Store', on_delete=models.DO_NOTHING)

    class Meta:
        unique_together = ('store', 'name')


class AccountLine(models.Model):
    account = models.ForeignKey('Account', on_delete=models.DO_NOTHING)
    line = models.ForeignKey('Line', on_delete=models.DO_NOTHING)
    extended_data = models.ForeignKey('ExtendedData', on_delete=models.DO_NOTHING)
    is_active = models.BooleanField(default=False)

    class Meta:
        unique_together = ('line', 'account')

我需要创建帐户商店的列表视图,并为每个商店连接线路列表,包括“通过”额外字段“is_active”,如以下 json:

[
  {
    "id": 0,        -- Store id
    "type": "store_type_1", --store type
    "name": "Store1",      --store name
    "lines": [
      {
        "id": 0,     -- AccountLine id--need for update
        "name": "Line1",-- Line name
        "extended_data": {
          "x1": true,
          "x2": 0
        },
        "is_active": true
      }
    ]
  }
]
django django-rest-framework django-views django-serializer
© www.soinside.com 2019 - 2024. All rights reserved.