В запросе я хочу вернуть коллекцию (через pk) и все объекты Sales, имеющие статус = 'ACTIVE'.Фильтровать дочерние строки в Django Queryset
Я попытался:
Collection.objects.filter(Sales__status="ACTIVE")
Но я вернусь объект коллекции со всеми объектами продаж, если один из объектов продаж соответствует критериям, а не только те, которые имеют статус «ACTIVE»
поэтому у меня есть 2 модели (и эталонная модель)
class Collection(models.Model):
ID = models.AutoField(primary_key=True)
collection_title = models.CharField(max_length=255)
class Sales(models.Model):
ID = models.AutoField(primary_key=True)
sales_title = models.CharField(max_length=255)
class CollectionSales(models.Model):
COLLECTIONSALES_STATUS_LIST = (
('ACTIVE', 'Active'),
('REJECT', 'Reject'),
)
collection = models.ForeignKey('Collection')
sales = models.ForeignKey('Sales')
status = models.CharField(max_length=10, choices=COLLECTIONSALES_STATUS_LIST, default="ACTIVE")
class Meta:
db_table = "myschema_collection_sales"
managed=False
EDIT: Я пытаюсь соответствовать это в Rest рамочной программы так, что о utput будет:
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"ID": "1",
"collection_title": "My Collection 1",
"Sales": [
{
"ID": 12,
"sales_title": "my sales title 12",
"status": "ACTIVE"
}
]
}
,
{
"ID": "2",
"collection_title": "My Collection 2",
"Sales": [
{
"ID": 4,
"sales_title": "my sales title 4",
"status": "ACTIVE"
},
{
"ID": 5,
"sales_title": "my sales title 5",
"status": "ACTIVE"
}
]
}
]
}
Я думаю, что ваш запрос был Collection.objects.filter (sales__status = "ACTIVE")? Он, естественно, возвращает все коллекции с активными продажами. – RickyA
Что именно вы хотите? Коллекции с активной продажей? CollectionSales для активной продажи? – RickyA
Я хочу, чтобы запрос возвращал объект коллекции вместе со всеми продажами, которые являются «ACTIVE» – HungryArthur