Как выбрать специфические c свойства связанной модели? - PullRequest
0 голосов
/ 12 апреля 2020

у меня четыре модели; Пользователь, членство, оборудование и цена оборудования. Затем я хочу вернуть цену для каждого Оборудования на основе членства пользователей: JSON, например:

{
 ...
 price: 150
}

Мои модели:

class Membership(models.Model):
    label = models.CharField(max_length=32)

class User(AbstractUser):
    # ...
    membership = models.ForeignKey(Membership, on_delete=models.SET_DEFAULT, null=False, default=1)
    membership_expiry = models.DateTimeField(null=True)
    # ...

class Equipment(models.Model):
    category = models.ForeignKey(EquipmentCategory, on_delete=models.SET_NULL, null=True)
    label = models.CharField(max_length=16, unique=True)
    description = models.TextField(max_length=512)

    def __str__(self):
        return self.label


class EquipmentPrice(models.Model):
    membership = models.ForeignKey(Membership, on_delete=models.CASCADE)
    equipment_article = models.ForeignKey(Equipment, on_delete=models.CASCADE, related_name='prices')
    price = models.FloatField()

    class Meta:
        unique_together = ('equipment_article', 'membership')

Что такое лучший способ написать представления или сериализаторы, чтобы они могли добавлять свойства к JSON, как это?

Любые подсказки или подсказки очень ценятся.

...