Djangoの配列フィールド/値を使用してフィルタを設定する
フィルタリング
配列/リスト値の操作に精通している場合は、配列フィールドまたは値を使用してクエリを最適化する方法を知りたい場合があります.🚀
さて、いくつかのフィルタメソッドや配列のフィールドや値を学びましょう.
IDのリストがあるとします.あなたはフィルタリングする
The
このため、
また、などの興味深いフィルタを見つけることができます
記事投稿bloggu.io . 無料でお試しください.
queryset
Djangoで作業するときに行われる最も重要な楽しい仕事の一つです.配列/リスト値の操作に精通している場合は、配列フィールドまたは値を使用してクエリを最適化する方法を知りたい場合があります.🚀
さて、いくつかのフィルタメソッドや配列のフィールドや値を学びましょう.
配列値のin ()メソッド
IDのリストがあるとします.あなたはフィルタリングする
queryset
IDのエントリを持つには、リスト内のID値にマッチします.ids = [1,4,8,9]
Products.objects.filter(id__in=ids)
これはSQLで等価です.SELECT * FROM products WHERE id IN (1,4,8,9);
ArrayField
The
ArrayField
データのリストを格納するためのフィールドです.我々は、別の記事でこの分野に深く潜ります.しかし、ここでは、この分野を使用するモデルの基本的な例があります.from django.contrib.postgres.fields import ArrayField
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=255)
tags = ArrayField(models.CharField(max_length=255), size=10)
すごい!データベースからすべての製品を検索したいとしましょうshoe
タグ、またはさらに興味深いshoe
and pants
タグ.このため、
contains
フィルタ.# Retrieving all products with shoe tag
Product.objects.filter(tags__contains=['shoe'])
# Retrieving all products with shoe and pant tags
Product.objects.filter(tags__contains=['shoe', 'pant'])
そして、それは基本的です.👀また、などの興味深いフィルタを見つけることができます
contained_by
これは contains
でも overlap
取得したエントリに少なくとも値が含まれているかどうかをチェックするフィルタ.記事投稿bloggu.io . 無料でお試しください.
Reference
この問題について(Djangoの配列フィールド/値を使用してフィルタを設定する), 我々は、より多くの情報をここで見つけました https://dev.to/koladev/filter-queryset-with-array-fieldsvalues-in-django-38eiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol