【发布时间】: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