Django Rest Framework: Создание модели списка с пользовательскими данными

Предположим, что я хочу создать несколько объектов модели и хочу добавить некоторые сгенерированные уникальные данные ко всем из них при сохранении.

Итак, если отправить что-то вроде этого в конечную точку:

[
   {
      "createDate":"now"
   },
   {
      "createDate":"now"
   }
]

Ответ должен быть примерно таким:

[
   {
      "createDate":"now",
      "uid":"1"
   },
   {
      "createDate":"now",
      "uid":"2"
   }
]

Я создал ViewSet для этого и сгенерировал необходимые поля в методе perform_create ovveride:

    def perform_create(self, serializer):
        unique_ids = ReleModuleConfig.objects.values_list('uid', flat=True)
        uid = generate_random_id(unique_ids)
        serializer.save(added_by=self.request.user, updated_by=self.request.user, uid=uid)

Однако когда я сохраняю это, для всех объектов устанавливается один и тот же uid. Таким образом, ответ таков:

[
   {
      "createDate":"now",
      "uid":"1"
   },
   {
      "createDate":"now",
      "uid":"1"
   }
]

Как я могу генерировать уникальные поля и вводить их в сериализатор, если у меня несколько объектов?

Я знаю, что по умолчанию в большинстве таблиц уже есть уникальное поле ID, но мне нужно генерировать QR-коды и другие вещи, я просто удалил его из этого примера, чтобы было проще понять.

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