【问题标题】:Define searchFilter URL in django rest framework在 django rest 框架中定义 searchFilter URL
【发布时间】:2021-09-15 21:15:50
【问题描述】:

目前我正在从事一个商店管理项目。该项目正在使用 django、django-rest-framework 和 react 构建。我想过滤模型数据。所以我安装了 django-filter。我需要定义像“http://localhost:8000/api/search-products/?category=oil&product=mustard oil”这样的网址。我该怎么做?

我的产品搜索视图是-

class SearchProduct(generics.ListAPIView):
    serializer_class = ProductSerializer
    filter_backends = [filters.SearchFilter]
    search_fields = ["category", "name"]

我的网址是-

path("api/search-product/?<str:category>&<str:name>", SearchProduct.as_view())

显示页面未找到错误。

如何定义合适的url路径?

【问题讨论】:

  • 您不必在urls.py中定义查询参数
  • 那它是如何工作的呢?
  • 查询参数不应该是路径 url 的一部分。不过它们仍然会被覆盖,它将由 django-filter 为您处理

标签: django django-rest-framework django-urls django-filter


【解决方案1】:

你不应该把它定义为path parameters:

path("api/search-product/", SearchProduct.as_view())  

你可以这样调用端点:

.../api/search-product/?search=any_thing_you_want

【讨论】:

    猜你喜欢
    • 2017-05-03
    • 2020-12-24
    • 1970-01-01
    • 2016-05-03
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多