我有一个简单的博客应用,其中包含带有ManyToManyField的模型Entry
,称为标签
的模型
class Tag(models.Model):
name = models.CharField(max_length=30)
class Entry(models.Model):
...
tags = models.ManyToManyFiled(Tag)
...
我还有一个过滤器类django_filters.rest_framework.FilterSet
,它应该能够过滤包含传递给请求的唯一标记的条目或标记+其他。
答案 0 :(得分:1)
使用filter_backends和filter_fields
实现这样的视图集class EntryList(generics.ListAPIView):
queryset = Entry.objects.all()
serializer_class = EntrySerializer
filter_backends = (DjangoFilterBackend,)
filter_fields = ('tags',')
如果您想按网址参数进行过滤,那么您的网址将与此类似:
example.com/api/entry?tag=mytag