IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Django Rest - Mise à jour suite à une création [Python 3.X]


Sujet :

Django Python

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 221
    Par défaut 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 : 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

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 221
    Par défaut
    Je suis vraiment bloquer...je n'arrive pas à trouver la solution.
    Si quelqu'un peut me donner une piste....

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 221
    Par défaut
    Finalement, j'ai trouvé....merci pour votre aide précieuse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/07/2020, 01h28
  2. Réponses: 0
    Dernier message: 17/04/2014, 11h24
  3. Réponses: 5
    Dernier message: 12/12/2009, 19h30
  4. [MySQL] Dates de création et de mise à jour d'une ligne
    Par MrGroar dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/01/2009, 17h57
  5. Insertion d'une mise à jour dans une création de vue
    Par Ptite_Tigresse dans le forum Langage SQL
    Réponses: 0
    Dernier message: 30/08/2007, 12h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo