🔎
Djangoで配列のデータを配列で検索する方法
例えば下記のような文字列の配列データがDBにあったとします。
tags:
{1}
{2}
{3}
{1,2}
{1,3}
{2,3}
{1,2,3}
これを下記の値で検索したいとします。
https://www.xxx.co.jp?tags[]=1
その場合、下記コードで
from django.db.models import Q
from rest_framework import viewsets
from api.models import Test
from api.serializers import TestSerializer
class TestViewSet(viewsets.ModelViewSet):
queryset = Test.objects.all()
serializer_class = TestSerializer
def get_queryset(self):
params = self.request.GET
return Test.objects.all().filter(
Q(tags__contains=params.getlist('tags[]'))
)
結果は下記のとおりです。
tags:
{1}
{1,2}
{1,3}
{1,2,3}
以上です。
Discussion