0

Disons que j'ai un modèle appelé Thingy, et il y a 20 Thingies dans ma base de données. Lorsque je récupère toutes les Thingies, serializer.to_represenatation() est exécuté 20 fois. C'est bon.Pourquoi la récupération d'une seule ressource exécute-t-elle plusieurs fois serializer.to_representation() dans le framework Django REST?

Cependant, quand je récupère juste un seul Thingy de/api/thingies/1, j'observe que serializer.to_representation() est exécuté quatre (4 !!!) fois.

Pourquoi cela se produit-il, et comment puis-je m'en tirer avec un seul appel à to_representation()?

Répondre

1

C'est parce que vous utilisez l'API navigable. Le rendu JSON ne l'appellera qu'une seule fois.

API Browsable a besoin de plusieurs appels:

  1. pour le résultat lui-même
  2. pour l'onglet données brutes lorsque vous pouvez modifier une ressource throughput
  3. pour l'onglet données brutes lorsque vous pouvez modifier une ressource via PATCH
  4. pour l'onglet de formulaire HTML