Django Rest - Mettre à jour un object lors de la création d'un autre objet
Bonjour,
J'ai une table de relation entre deux objet, un utilisateur et une offre
Lorsque l'utilisateur veut accepter une offre, je créé un enregistrement dans cette table de relation qui me permet de savoir toutes offres acceptés par l'utilisateur (ce qui correspond à ce qu'il a commandé)
Je voudrais lors de cette association, modifier le statut de l'offre acceptée.
Voici ce que j'ai :
Un serializer pour l'association (commande):
Code:
1 2 3 4 5 6 7 8 9 10
|
class Order_UserSerializer(serializers.ModelSerializer):
def create(self, validated_data):
order_customer = Order_Customer.objects.create(**validated_data)
return order_customer
class Meta:
model = Order_Customer
fields= '__all__' |
Une vue
Code:
1 2 3 4 5 6 7 8
|
class Order_UserViewSet(viewsets.ModelViewSet):
queryset = Order_Customer.objects.all()
serializer_class = Order_UserSerializer
permission_classes = [permissions.IsAuthenticated]
def perform_create(self,serializer):
serializer.save(customer_id=self.request.user.id) |
Si j'exécute la requête, l'association est bien créée pour l'utilisateur et l'offre commandée
Mais je voudrais mettre à jour le statut de l'offre, j'ai essayé de faire ça pour mettre le statut
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
class Order_UserSerializer(serializers.ModelSerializer):
def create(self, validated_data):
offer = validated_data.pop('offer')
Offers.objects.filter(id=offer.id).update(status_id='SAMPL')
order_customer = Order_Customer.objects.create(**validated_data)
return order_customer
class Meta:
model = Order_Customer
fields= '__all__' |
mais quand j'exécute la requête
j'ai cette erreur
Code:
1 2
| null value in column "offer_id" violates not-null constraint
DETAIL: Failing row contains (20, 2020-06-20, 2020-06-20, 1, null). |
Merci pour votre aide