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-коды и другие вещи, я просто удалил его из этого примера, чтобы было проще понять.