# Django ArrayField {{tag>django array field}} ## Model ``` class ProductTag(BaseModel): product = models.ForeignKey(Product, on_delete=models.CASCADE) tag_list = ArrayField(models.TextField(), null=True) ``` ## Filter ``` 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))) ``` ## 출처 - https://docs.djangoproject.com/en/3.1/ref/contrib/postgres/fields/