J'utilise le cadre de repos Django pour sérialiser un modèle dans lequel j'ai une fourchette élégante.
modèles.py em> p> sériializers.py em> p> Je veux vous débarrasser du "formulaire HTML" au bas de la vue API de navigabilité depuis que je reçois une liste avec tout mon Les articles et les récupérer de la DB prend des âges (j'ai quelques articles 100 000, et chaque fois que le formulaire HTML est affiché, mon serveur fait des requêtes de 100k). p> J'ai lu la réponse de Comment désactiver le style d'administration navigable Interface de Django-Rest-framework? et je présente actuellement la vue à Json. Cependant, j'aime la vue HTML et souhaite trouver un moyen d'éviter le formulaire HTML disponible en bas. P> Je ne veux pas supprimer correctement le champ de la vue (j'ai besoin de l'utiliser ), mais simplement supprimer les requêtes de la base de données utilisées pour remplir le formulaire. P> aucune idée? P> P>
3 Réponses :
Je réponds ma propre question.
J'ai trouvé dans le Documentation la solution à mon problème. J'ai dû utiliser l'attribut lis_only em>. sériializers.py em> p>
Vous pouvez également définir vos champs de la méta-classe (voir Docs )
Faire le champ en lecture seule signifie que vous ne pouvez pas la modifier, ce qui n'est probablement pas recherché dans tous les cas.
Une autre solution consiste à remplacer le Ceci est étonnamment facile, il suffit de remplacer Ajustez ensuite vos paramètres pour utiliser ce rendu: P> BrowSableapiRenderer code> afin qu'il ne puisse pas afficher le code HTML forme (qui peut être vraiment vraiment lent avec beaucoup de données). p>
get_rendered_html_form code>: p>
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
'myapp.renderers.NoHTMLFormBrowsableAPIRenderer',
)
}
@maerteijn Réponse Désactivera toutes les formulaires: Publier, mettre, mettre, supprimer et options.
Si vous souhaitez toujours autoriser le bouton "Options" génial, vous pouvez faire quelque chose comme celui-ci p> et modifier les paramètres.py de la même manière p>