简体   繁体   English

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

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

Now I want to reuse the post method of BundleList.现在我想重用BundleList的post方法。 Either I find out the absolute URL and use requests.post(URL) to send a request.要么我找出绝对的 URL 并使用requests.post(URL)发送请求。

The 2nd way is to reuse by return BundleList.as_view()(request) in a view function.第二种方法是通过在视图 function 中return BundleList.as_view()(request)来重用。 But I can't set request.data = data .但我不能设置request.data = data Request data is immutable.请求数据是不可变的。

When I try to use当我尝试使用

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

It just gives me:它只是给了我:

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

The BundleList is a class-based view with get and post method. BundleList 是一个基于类的视图,带有 get 和 post 方法。

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

Can anyone help me out?谁能帮我吗?

You should set name for your view and use that name in reverse_lazy()您应该为视图设置name并在reverse_lazy()中使用该名称

for ex:例如:

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

then然后

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

see, docs见, 文档

Also, to know why request.data is sometimes immutable see this question另外,要知道为什么request.data有时是不可变的, 请参阅这个问题

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

相关问题 如何在基于 django 类的视图中设置要在 POST 和 GET 方法中使用的属性? - How can I set an attribute to use in both POST and GET methods in django class-based views? 如何在Django中向基于类的视图发出POST请求 - How to make POST requests to class-based Views in Django 如何将基于类的视图转换为基于函数的视图? - Django - How can I convert my class-based view to function-based views? - Django 在基于Django类的视图中保存到数据库之前先发布到API - Post to API before saving to database in django class-based views 如何在 Django 的基于类的视图中使用帖子保存表单时保存用户 - How to save user when saving a form using post within Class-Based Views in Django aiohttp 中基于类的视图 - Class-based views in aiohttp Django:为所有(基于类)视图提供全局方法吗? - Django: provide global method to all (class-based) views? 如何应用装饰器在基于类的视图Django中执行调度方法 - How to apply decorator do dispatch method in class-based views Django 我可以在基于Django类的视图中依赖self.request吗? - Can I rely on self.request in django class-based views? 如何创建可在基于类的视图函数和类上使用的装饰器? - How to create a decorator that works on class-based views function and class?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM