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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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