У меня есть простая модель, которая сериализуется и создается.Для этого Viewset выглядит следующим образом:
class OrderViewset(viewsets.ModelViewSet):
depth = 1
serializer_class = OrderSerializer
...
def perform_create(self, serializer):
serializer.save(user=self.request.user)
populate_ing(serializer)
Как только пользователь сохранит и создаст модель, я стремлюсь сделать снимок и вызвать 'populate_ing (xxx)', который берет модель (в данном случае - порядок)и создает ряд связанных объектов, используя отношение внешнего ключа.
Возможно ли это обработать при сохранении?Поверьте, как и выше, переопределив execute_create, я должен сделать это.И, самое главное, как я могу получить доступ к только что созданной модели?
Для более ясного понимания того, что мне нужно, я хотел бы сделать следующее:
- Создать«Порядок» с использованием ViewSet выше
- Передача «Порядка» (или его идентификатора и т. Д. В зависимости от того, что возможно) для функции populate_ing
- populate_ing выполняет свою магию и создает другие модели
- Return'Order'
Мой сериализатор выглядит следующим образом:
class OrderSerializer(serializers.ModelSerializer):
class Meta:
model = Order
fields = '__all__'
В обычном представлении Djnago с формой я бы обработал его следующим образом:
def view_create_order(request):
form = OrderForm(request.POST or None)
if form.is_valid():
new_order = form.save()
populate_ing(new_order)
context = {"form": form}
template = "order/order-update.html"
return render(request, template, context)