class ProductTag(BaseModel):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
tag_list = ArrayField(models.TextField(), null=True)
class ProductTagView(APIView):
def get(self, request):
tag_list = request.GET.get('tag_list')
if not tag_list:
raise ParseError()
tag_list = re.split(r'\s*,\s*', tag_list)
product_tag_list = ProductTag.objects.filter(tag_list__contains=tag_list)
product_tag_se = ProductTagSerializer(product_tag_list, many=True)
return Response(product_tag_se.data)
product_tag_list = ProductTag.objects.filter(reduce(operator.and_, (Q(tag_list__contains=x) for x in tag_list)))