У меня запутанная проблема при запросе в django. Я знаю, что это не ошибка, и это то, чего я не знаю.
Итак, модели:
class Product(models.Model):
name = models.CharField(max_length=255)
class AttributeValue(models.Model):
value = models.CharField(max_length=255)
product = models.ForeignKey(Product, related_name='attribute_values', on_delete=models.CASCADE)
У меня есть один объект под названием Футболка , и у него есть два AttributeValue
с идентификаторами 1, 2. И когда я Фильтруйте так (1):
Product.objects.filter(Q(attribute_values__pk__in=[1, 2]))
Возвращает мой футболку объект. Но когда я фильтрую вот так (2)
Product.objects.filter(Q(attribute_values__pk__in=[1]) & Q(attribute_values__pk__in=[2]))
, здесь не найдено ни одного набора запросов. Как это происходит? Предыдущие коды являются лишь примерами, и у меня есть проект, который действительно нужно сделать с этим вторым фильтром (2).