Как обновить атрибут внешнего ключа после создания объекта в Django Model

Я создаю REST API с помощью Django, в котором есть две модели, связанные друг с другом: Item и Attribute. Модель Item имеет Attribute в качестве внешнего ключа. Модель Attribute имеет поле number_of_uses, которое хранит количество элементов, с которыми связан атрибут. Я хотел бы узнать, как я могу обновить это число при создании нового элемента Item. Как я могу обновить поле после создания элемента, но до того, как API вернет ответ вызывающей стороне?

Во-первых, вы уверены, что это One-To-Many?

Может быть, проверить это? model.save(). Вы можете переопределить метод save, чтобы увеличить счетчик атрибута.

Другая возможность - создать поле свойства для number_of_uses. Что-то вроде этого:

class Attribute(models.Model):
    # fields

    @property
    def number_of_uses(self):
        return Item.objects.filter(attribute = self).count()
                               # or attribute__field = self.field

Это также может быть сериализовано и всегда точно.

Вернуться на верх