Bonjour
Je voudrais créer des API avec django REST Framework
Je veux faire une API qui retourne des offres. Une offre a un statut avec un code et un libellé
J'ai créé un model pour les statuts et un pour les offres avec une clé étrangère vers les statuts
J'ai créé deux serializers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class Status(models.Model): code = models.CharField(max_length=5, unique=True) Label = models.CharField(max_length=128) class Offers(models.Model): appelation = models.CharField(max_length=256) year = models.IntegerField() typeOffer = models.CharField(_("type"), max_length=128) volume = models.FloatField() price = models.FloatField() location = models.CharField(max_length=256) status = models.ForeignKey(Status, related_name='statut', on_delete=models.DO_NOTHING)
Quand j'exécute mon API ("http://localhost:8000/offers/") pour retrouver mes offres, j'obtiens ceci et qui me va très bien (car ça permet à mon front en React d'avoir toutes les infos)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class StatusSerializer(serializers.ModelSerializer): class Meta: model = Status fields = ("__all__") class OfferSerialzer(serializers.ModelSerializer): status = StatusSerializer() class Meta: model = Offers fields = ('id','appelation','year','typeOffer','volume','price','location','status')
Je ne sais comment faire pour créer ne nouvelle offre en faisant référence à un statut existant. Quand je créé une offre, elle doit avoir un statut par défaut
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 [ { "id": 1, "appelation": "Chénas", "year": 1950, "typeOffer": "Vrac", "volume": 130.0, "price": 2600.0, "location": "Grenot", "status": { "id": 1, "code": "WAIT", "Label": "En attente de validation" } } ]
Comment faire aussi quand je vais vouloir mettre à jour le statut de mon offre
Quand je vais appeler mon api "http://localhost:8000/offers/" en POST, est ce que je dois lui passer l'id d'un statut ? Si oui, faut-il modifier mon serializer pour ajouter l'ID du statut ?
Merci pour votre aide
Partager