Django Rest Framework CharFilter JSON

普里兹拉克米尔

我在django rest中有一个过滤器charfilterinfilter(field_name ='genres__name',lookup_expr ='in')。我在数据库中有通过多对多处理的两个类别,但是在过滤该产品的两个类别时却有有两个要素,我只需要一个要素

意见

class CharFilterInFilter(filters.BaseInFilter, filters.CharFilter):
    pass

class ShoppFilter(filters.FilterSet):
    price = filters.RangeFilter()
    genres = CharFilterInFilter(field_name='genres__name')
    title = SearchFilter()
    class Meta:
        model = smartphone
        fields = ['price','genres','title']


class MDShopListView(generics.ListAPIView):
    queryset = smartphone.objects.all()
    filter_backends = (DjangoFilterBackend,SearchFilter)
    search_fields = ['title']
    filterset_class = ShoppFilter



def get(self, request):
    queryset = self.filter_queryset(self.get_queryset())
    serializer=MDShopListSerializer(queryset,many=True)
    return Response(serializer.data)

楷模

genres = models.ManyToManyField(Genre, verbose_name="жанры")


class Genre(models.Model):
   [enter image description here][1]
    name = models.CharField("Имя", max_length=100)

img json 1:https//i.stack.imgur.com/4WR6L.png

埃敏·马斯蒂扎达(Emin Mastizada)

这是ManyToMany字段的常见问题,解决方案是将distinct方法应用于查询:

class ShoppFilter(filters.FilterSet):
    ...your filter definition as it is now

    def filter_queryset(self, request, queryset, view):
        return super(ShoppFilter, self).filter_queryset(
            request, queryset, view
        ).distinct()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当django-rest-framework为空时,带有CharFilter的django-filters BaseInFilter不返回任何结果

来自分类Dev

来自Django Rest Framework的JSON

来自分类Dev

JSON API标准的Django Rest Framework方法

来自分类Dev

Django Rest Framework返回空JSON

来自分类Dev

角度显示 Django Rest Framework json

来自分类Dev

在Django REST Framework中命名为JSON数组

来自分类Dev

在HTML模板中包含来自Django Rest Framework的JSON

来自分类Dev

使用 Django Rest Framework 的自定义 JSON 回调

来自分类Dev

Django Rest Framework and JSONField

来自分类Dev

Django Rest Framework API

来自分类Dev

Django Rest Framework的ModuleNotFoundError

来自分类Dev

Django Rest Framework URL模式

来自分类Dev

Django Rest Framework API权限

来自分类Dev

Django Rest Framework权限冲突

来自分类常见问题

Django Rest Framework部分更新

来自分类Dev

Django Rest Framework:最佳做法?

来自分类Dev

Django Rest Framework APIView参数

来自分类Dev

Django REST Framework文件上传

来自分类Dev

Django Rest Framework版本控制

来自分类Dev

Django Rest Framework:管理关系

来自分类Dev

Django Rest Framework反向URL

来自分类Dev

Django REST framework request data

来自分类Dev

Django REST Framework缓存错误

来自分类Dev

Django Rest Framework ImageField可选

来自分类Dev

Django Rest Framework嵌套关系

来自分类Dev

Django rest_framework关系

来自分类Dev

Django Rest Framework版本控制

来自分类Dev

Django Rest Framework:最佳做法?

来自分类Dev

Django Rest Framework权限冲突