技術ネタとかの備忘録

最近の技術ネタとかの備忘録を書いていくブログです

DjangoでPostgreSQLのArray型に対して演算子&&を使う方法

最近、Pythonの勉強がてらDjnagoでWebアプリを作ってます。
DjangoのQuerySet APIで、PostgreSQLのArray型のカラムを扱ってた時に少しハマりました。

Djangoのドキュメントに記載がなかったのでメモがてら残しておきます。
(私が見つけられていないだけだと思いますが・・・)

やりたかったこと

PostgresSQLのドキュメント*1にある演算子「&&(重複する(共通要素を持つ))」をDjangoのQuerySet APIで使いたい。

ARRAY[1,4,3] && ARRAY[2,1] => True

解決方法

Xxxx.objects.filter(xxx__overlap=xxx)

PostgreSQLの英語のドキュメントを読むと「重複する=overlap」なんですね。
勉強になりました。