wir prefetch_related nehme an, dies ist mein Modell:Zwei Filter auf zwei Tabellen mit
class Pizza(models.Model):
size = models.IntegerField()
#other fields
class Order(models.Model):
date = models.DateField()
pizza = models.ManyToManyField(Pizza, through='OrderPizza')
#other fields
class OrderPizza(models.Model):
update = models.BooleanField()
order = models.ForeignKey(Order, on_delete=models.CASCADE)
pizza = models.ForeignKey(Pizza, on_delete=models.CASCADE)
Ich versuche, mit Größe 32. innerhalb der letzten, um die ID der Pizza zu sehen Wie kann ich nur, dass die Verwendung eines Abfragegruppe?
#I take the last order:
last_order = Orders.objects.filter().order_by('-order_number')[:1]
#If we have at least one order
if last_order:
var_last_order_id = last_order[0].id
#First filter
queryset_orders = Orders.objects.filter(id=var_last_order_id).prefetch_related('pizza')
for food in queryset_orders:
#Second filter
pizza32 = food.pizza.filter(size = 32)
print pizza32.id
Ich wollte nur nur eine Abfrage erstellen, statt queryset_orders = Orders.objects.filter (id = var_last_order_id) .prefetch_related ('Pizza') und pizza32 = food.pizza.filter (Größe = 32) Glaubst du, ist das möglich? – Steve
Ich glaube nicht, dass du es kannst. Was ist der Sinn, das in einer Abfrage zu tun? –