【问题标题】:Setting dynamic urls for django filter为 django 过滤器设置动态 url
【发布时间】:2021-12-15 03:32:24
【问题描述】:

上下文:我对 Django 几乎没有经验,它是动态 url。在这个项目中,我使用djangorestframeworkdjango-filters 包。 我的模型使用models.CharField(所有者、项目、类别...)。使用filterset,我想设置一个动态url。

使用网址 path('item**/categories=categoryname**', items-view.as_view(), name='category') 我需要在浏览器搜索框中指定类别名称,然后才能获取命名类别中的项目。这就是我在浏览器上测试它的方式,通过使用类别名称,我可以返回该类别中的所有项目。我想在反应应用程序中使用 url。

由于我将类别等同于类别名称以获取该特定类别中的项目列表,因此按原样获取该 API 是否是一种好习惯?或者有没有办法动态设置url?

例如,当为产品id 使用lookup_field 时,我可以使用path('item/**<int:id>**', items-view.as_view(), name='category') 动态设置url,而无需在URL 中硬编码id。

【问题讨论】:

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


    【解决方案1】:

    查询字符串不能解决您的问题吗? 如果您使用的是 drf,请检查 drf filters 如果您需要覆盖 quertset 方法,您也可以这样做 在您的 api 视图中添加类似

       def get_queryset(self, *args, **kwargs):
            queryset = super().get_queryset(*args, **kwargs)
            if 'category' in self.request.GET:
                return queryset.filter(category_name=self.request.GET['category'])
        return queryset
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多