【问题标题】:what are the API endpoints ModelViewSet什么是 API 端点 ModelViewSet
【发布时间】:2019-04-09 11:40:12
【问题描述】:

我已经设法执行 get one 并获取所有请求,我现在正在尝试通过 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__'

有什么建议吗?

【问题讨论】:

  • 您是否尝试向 /api/edutiants/id/ 发送 HTTP DELETE 请求?
  • 405 响应代码表示“方法不允许”。您是否分享了 EtudiantViewSet 的所有代码?如果没有,你能分享剩下的吗?
  • 从日志看来,您正在将请求发送到“127.0.0.1:8000/api/etudiants/”,而它应该是“127.0.0.1:8000/api/etudiants/id/” ",注意最后的id,应该是你要删除的实例的id
  • 你能在你的请求 url 中附加一个斜杠 (/) 字符吗?我认为该请求是通过没有它的 GET 请求重定向的(即“/api/etudiants/1/”而不是“/api/etudiants/1”)
  • 你应该看看邮递员的确切响应,301重定向是什么? (响应的 Location 标头是什么?)

标签: python django rest django-rest-framework


【解决方案1】:

你已经使用ModelViewSet来控制api了。

根据您的声明为您提供以下网址。

  • <host>/api/etudiants/ 发布
  • <host>/api/etudiants/<Etudiant id>/ 删除
  • <host>/api/etudiants/<Etudiant id>/ PUT
  • <host>/api/etudiants/<Etudiant id>/ 补丁
  • <host>/api/etudiants/<Etudiant id>/ 获取
  • <host>/api/etudiants/ GET(列出端点)

删除:您可以使用<host>/api/etudiants/<Etudiant id><Etudiant id> 替换为您的Etudiant 对象的ID,并在该端点上调用DELETE http 方法。

创建:使用<host>/api/etudiants/ 添加json 有效负载,然后在该端点上调用POST http 方法。

如果这对您没有帮助,请在下方发表您的评论。

【讨论】:

  • 使用邮递员我向这个网址发送了一个帖子请求:127.0.0.1:8000/api/etudiants/,但它显示:“详细信息”:“不支持的媒体类型\”文本/纯文本\”在请求中.
猜你喜欢
  • 2018-04-12
  • 2019-12-12
  • 1970-01-01
  • 2011-01-08
  • 2021-04-19
  • 1970-01-01
  • 2016-03-26
  • 2019-08-21
  • 1970-01-01
相关资源
最近更新 更多