繁体   English   中英

如何重用基于 DRF 类的视图 POST 方法?

[英]How can I reuse a DRF class-based views POST method?

现在我想重用BundleList的post方法。 要么我找出绝对的 URL 并使用requests.post(URL)发送请求。

第二种方法是通过在视图 function 中return BundleList.as_view()(request)来重用。 但我不能设置request.data = data 请求数据是不可变的。

当我尝试使用

url = reverse_lazy(BundleList.as_view(), request=request)
print(f"{url = }")

它只是给了我:

NoReverseMatch at /generateSampleBundle/
Reverse for 'my_app.views.BundleList' not found. 'my_app.views.BundleList' is not a valid view function or pattern name.

BundleList 是一个基于类的视图,带有 get 和 post 方法。

drfurlpatterns = [  # DRF URL endpoints
    path('bundles/', views.BundleList.as_view()),
]

谁能帮我吗?

您应该为视图设置name并在reverse_lazy()中使用该名称

例如:

drfurlpatterns = [  # DRF URL endpoints
    path('bundles/', views.BundleList.as_view()), name='bundle-list'
]

然后

url = reverse_lazy('bundle-list', request=request)

见, 文档

另外,要知道为什么request.data有时是不可变的, 请参阅这个问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM