Django Rest - Mise à jour suite à une création
Bonjour,
Voici ce que je voudrais faire :
Lorsque que je créer un élément d'une table, je voudrais mettre à jour d'autres éléments d'une autre table.
J'utilise Django Rest Framework.
Voici ce que j'ai tenté de faire, bien sûr , ça ne fonctionne pas mais vous comprendrez peût être mieux mon objectif
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
class OrderWorkflowViewSet(viewsets.ModelViewSet):
queryset = Order_Workflow.objects.all()
serializer_class = OrderWorflowSeriarlizer
permission_classes = [permissions.IsAuthenticated]
pagination_class = None
def create(self,request):
serializer = self.get_serializer(data=request.data)
if serializer.is_valid(raise_exception=True) :
if serializer.validated_data.get('status').code == 'VALID' :
cancelStatus = StatusOrder.objects.filter(code='CANCE')
#Je récupère la liste des commandes à mettre à jour
orders = Order_Customer.objects.filter(offer=serializer.validated_data.get('order').offer).exclude(id=serializer.validated_data.get('order').id)
#Je voudrais mettre à jour le statut de chacune d'entre elles
for order in orders:
s = Order_UserSerializer(data=order)
s.currentStatus = cancelStatus
if s.is_valid(raise_exception=True):
s.save()
self.perform_create(serializer)
return Response(serializer._data)
def perform_create(self,serializer):
serializer.save() |
Voici l'erreur que j'ai:
Code:
1 2 3 4 5 6
|
{
"non_field_errors": [
"Invalid data. Expected a dictionary, but got Order_Customer."
]
} |
Je pense que c'est du tout comme ça qu'il faut faire, mais je ne vois pas commen.
Merci pour votre aide