2
내가 가진 같은 모델 : 나는 사용자가 입력 한 범주의 목록을 가지고매개 변수가있는 Django ManyToManyField 필터?
class Category(Model):
...
type = models.CharField(max_length=255, choices=settings.CATEGORIES)
class Product(models.Model):
...
categories = models.ManyToManyField(Category)
(형식은 임의) :
이c = [<Category: G, type: producer>, <Category: L, type: producer>, <Category: Teen, type: age>, <Category: Man, type: sex>]
지금 내가 부문에서 'G가 모든 제품을 갖고 싶어 '또는'L '(유형'생산자 '),'Teen '(유형'연령 ') 및'Man '(유형)'sex ' 나는 예를 들어 다음의 검색어에 대한 일을 해요 :
SELECT "shop_product"."id", "shop_product"."title", "shop_product"."description",
"shop_product"."price", "shop_product"."code", "shop_product"."stored_count",
"shop_product"."sold_count", "shop_product"."added_date" FROM "shop_product"
INNER JOIN "shop_product_categories" ON ("shop_product"."id" =
"shop_product_categories"."product_id") WHERE
(("shop_product_categories"."category_id" = 1 OR
"shop_product_categories"."category_id" = 2) AND
"shop_product_categories"."category_id" = 4 AND
"shop_product_categories"."category_id" = 6)
나는 적어도 하나의 개체가 이러한 요구 사항에 가장 적합한,하지만 아무것도 돌려주지의 검색어 : 같은 쿼리를
Product.objects.filter(Q(categories=c[0])|Q(categories=c[1]), Q(categories=c[2]), Q(categories=c[3])
. 어떤 제안?
감사합니다, 그것이 내가해야 할 것처럼 작동합니다! –