Как обновить атрибут внешнего ключа после создания объекта в 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
Это также может быть сериализовано и всегда точно.