如何解决我可以为模型中的所有参数创建一个过滤器,而不必在查询集中编写每个参数吗?
class Item(models.Model):
"""Class to represent an item..."""
label = models.TextField(null=True)
photo = models.ImageField(null=True,upload_to='item_images/%Y/%m/%d/')
name = models.TextField()
#...
# This has around 20-30 paramters
并且我发现我可以按如下方式过滤结果:
class ItemViewset(viewsets.ModelViewSet): # pylint: disable=too-many-ancestors
"""API Endpoint to return the list of items"""
queryset = Item.objects.all()
serializer_class = ItemSerializer
def get_queryset(self):
"""
This method allows to filter the results to a set of paramters
"""
queryset = super(ItemViewset,self).get_queryset()
name = self.request.query_params.get('name',None)
if name is not None:
queryset = queryset.filter(name__contains=name)
label = self.request.query_params.get('label',None)
if label is not None:
queryset = queryset.filter(label__contains=label)
# ... the same for each paramter
return queryset
是否可以为模型中的每个字段自动完成此操作,而无需在此视图中重复书写相同的行?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。