1 Question: Quels sont les points de terminaison de l'API ModelViewSet

question créée à Tue, Apr 9, 2019 12:00 AM

J'ai déjà réussi à en obtenir une et à recevoir toutes les demandes. J'essaie maintenant de supprimer et de créer de nouveaux utilisateurs via l'URL.

views.py:

class EtudiantViewSet(viewsets.ModelViewSet):
 queryset=Etudiant.objects.all()
 serializer_class=EtudiantSerializer

router.py:

router=routers.DefaultRouter()
router.register('etudiants',EtudiantViewSet)

urls.py:

urlpatterns = [

 url(r'^admin/', admin.site.urls),
 path('api/',include(router.urls)),]

models.py:

class Etudiant(models.Model):

 id=models.IntegerField(primary_key=True)
 nom=models.CharField(max_length=20)
 prenom=models.CharField(max_length=20)

 cne=models.CharField(max_length=10)
 email=models.EmailField()
 tel=models.CharField(max_length=10)

 def __str__(self):
     return 'Nom : {} , Prénom : {}'.format(self.nom,self.prenom)

serializers.py:

class EtudiantSerializer(serializers.ModelSerializer):
 class Meta :
     model=Etudiant
     fields='__all__'

Des recommandations?

    
2
  1. Avez-vous essayé d'envoyer une demande HTTP DELETE à /api /edutiants /id /?
    2019-04-09 11: 59: 01Z
  2. Le code de réponse 405 signifie "Méthode non autorisée". Avez-vous partagé tout le code pour EtudiantViewSet? Sinon, pouvez-vous partager le reste?
    2019-04-09 12: 03: 16Z
  3. D'après les journaux, il semblerait que vous envoyiez la demande à "127.0.0.1:8000/api/etudiants/", alors qu'il devrait être "127.0.0.1:8000 /api /etudiants /id /", notez l’identifiant à la fin, c’est celui de l’instance que vous souhaitez supprimer
    2019-04-09 12: 05: 49Z
  4. Pouvez-vous ajouter une barre oblique (/) à l'URL de votre demande? Je pense que la requête est redirigée avec une requête GET sans celle-ci (c'est-à-dire "/api /etudiants /1 /" au lieu de "/api /etudiants /1")
    2019-04-09 12: 11: 58Z
  5. et vous devriez regarder la réponse exacte dans postman, à quoi sert la redirection 301? (quel est l'en-tête de la réponse 0600350991111101035062?)
    2019-04-09 12: 13: 27Z
1 Réponses                              1                         

Vous avez utilisé Location pour contrôler les API.

Qui vous fournit les URL suivantes selon votre déclaration.

  • ModelViewSet POST
  • <host>/api/etudiants/ SUPPRIMER
  • <host>/api/etudiants/<Etudiant id>/ PUT
  • <host>/api/etudiants/<Etudiant id>/ PATCH
  • <host>/api/etudiants/<Etudiant id>/ GET
  • <host>/api/etudiants/<Etudiant id>/ GET (extrémité de la liste)

Suppression : vous pouvez utiliser 0600350991111101035062 et remplacer 0600350991111101035062 avec votre méthode 0600350991111101035062 et appeler 0600350991111101035062

sur ce point.

Création : utilisez <host>/api/etudiants/ add charge utile json , puis appelez la méthode http 0600350991111101035062 http sur ce noeud final.

Si cela ne vous aide pas, mettez votre commentaire ci-dessous.

    
2
2019-04-09 12: 27: 32Z
  1. utilisant postman, j'ai envoyé une demande de publication à cette URL: 127.0.0.1:8000/api/etudiants/mais il affiche: "detail": "Type de média non pris en charge \" text /plain \"dans la requête.
    2019-04-09 12: 41: 26Z
  2. sélectionnez <host>/api/etudiants/<Etudiant id> dans la liste déroulante du facteur
    2019-04-09 13: 03: 28Z
  3. Je l'ai trouvé ça marche
    2019-04-09 13: 20: 51Z
<Etudiant id>
source placée ici
D\'autres questions