drf __contains
时间: 2023-07-03 21:26:42 浏览: 105
DRF_Books
在 Django Rest Framework (DRF) 中,__contains 是一个查询参数,用于在模型的某个字段中进行包含查询,即模糊搜索。
例如,假设我们有一个模型类:
```python
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
```
现在我们想要查询标题中包含某个关键词的文章,可以使用 __contains 参数:
```python
class ArticleViewSet(viewsets.ModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
def get_queryset(self):
queryset = super().get_queryset()
keyword = self.request.query_params.get('keyword', None)
if keyword:
queryset = queryset.filter(title__contains=keyword)
return queryset
```
上面的代码中,我们重写了 ArticleViewSet 的 get_queryset 方法,获取查询参数中的关键词,然后使用 filter 方法对标题进行包含查询。
注意,在使用 __contains 参数时,需要确保该字段为字符串类型,否则会报错。此外,__contains 区分大小写,如果需要忽略大小写,可以使用 __icontains 参数。
阅读全文