小编Vas*_*aur的帖子

如何在 Django Rest Framework 中发送 DELETE 请求正文

所以我试图在DRF中发送 DELETE 的请求正文。我知道默认情况下,DRF 不支持批量操作,所以我使用django-rest-framework-bulk

现在,根据教程,我确保仅在过滤查询时才允许批量删除。我正在使用 BulkModelViewset。

考虑这个 json 数组:

[{

    "id": "1",
    "first_name": "bruce",
    "second_name": "banner",
    "team": "avengers"
},
{
    "id": "2",
    "first_name": "clark",
    "second_name": "kent",
    "team": "Justice League"
}
{

    "id": "3",
    "first_name": "dead",
    "second_name": "pool",
    "team": "x force"
}]
Run Code Online (Sandbox Code Playgroud)

现在我可以通过传递如下过滤器来批量删除:

DELETE /api_name/?first_name=bruce,clark
Run Code Online (Sandbox Code Playgroud)

但是我的前端人员想要发送请求正文,因为如果需要删除 100 个对象,则他们不会在查询参数中以逗号分隔的字符串形式发送 100 个 id。

有没有一种方法可以像在 POST、PUT 等中那样发送要删除的请求正文。喜欢,

[{

    "id": "1",
    "first_name": "bruce",
    "second_name": "banner",
    "team": "avengers"
},
{
    "id": "2",
    "first_name": "clark",
    "second_name": "kent",
    "team": "Justice League"
}] …
Run Code Online (Sandbox Code Playgroud)

django rest python-3.x django-rest-framework

8
推荐指数
1
解决办法
1669
查看次数

在 Django REST Framework 中更新/放置请求

我是 Django REST Framework 的新手,并在我正在开发的新项目中尝试使用它。因此,根据官方教程,我尝试创建几个 get/post/put 请求,但使用 put 请求时出现以下错误:

预期使用名为“pk”的 URL 关键字参数调用视图 ExampleUpdateView。修复您的 URL 配置,或.lookup_field正确设置视图上的属性。

这是我必需的文件:

models.py

class ExampleModel(models.Model):
    foo_field = models.CharField(primary_key=True, max_length=15)
    bar_field = models.CharField(max_length=30)
    last_updated_by = models.CharField(max_length=15)
    last_updated_on = models.DateTimeField()

    class Meta:
        managed = True
        db_table = 'example_db'
        unique_together = (('foo_field', 'bar_field'),)
Run Code Online (Sandbox Code Playgroud)

serializers.py

class ExampleSerializer(serializers.ModelSerializer):
    class Meta:
        model = ExampleModel
        fields = ('foo_field', 'bar_field', 'last_updated_by', 'last_updated_on')
Run Code Online (Sandbox Code Playgroud)

urls.py

url(r'^get_example/$', views.ExampleCreateView.as_view()),
url(r'^update_example/(?P<pk>\d+)/$',views.ExampleUpdateView.as_view()),
Run Code Online (Sandbox Code Playgroud)

views.py

class ExampleCreateView(generics.CreateAPIView):
    serializer_class = ExampleSerializer
    queryset = ExampleModel.objects.all()

class ExampleUpdateView(generics.UpdateAPIView):
    queryset = ExampleModel.objects.all()
    serializer_class = …
Run Code Online (Sandbox Code Playgroud)

python django rest django-models django-rest-framework

0
推荐指数
1
解决办法
2万
查看次数