การเชื่อมโยงหลายตัวกรอง () ใน Django นี่เป็นข้อบกพร่องหรือไม่?
ฉันคิดเสมอว่าการเชื่อมโยงการโทรหลายตัวกรอง () ใน Django นั้นเหมือนกับการรวบรวมในการโทรครั้งเดียวเสมอ # Equivalent Model.objects.filter(foo=1).filter(bar=2) Model.objects.filter(foo=1,bar=2) แต่ฉันได้พบกับ Queryset ที่ซับซ้อนในรหัสของฉันซึ่งไม่เป็นเช่นนั้น class Inventory(models.Model): book = models.ForeignKey(Book) class Profile(models.Model): user = models.OneToOneField(auth.models.User) vacation = models.BooleanField() country = models.CharField(max_length=30) # Not Equivalent! Book.objects.filter(inventory__user__profile__vacation=False).filter(inventory__user__profile__country='BR') Book.objects.filter(inventory__user__profile__vacation=False, inventory__user__profile__country='BR') SQL ที่สร้างขึ้นคือ SELECT "library_book"."id", "library_book"."asin", "library_book"."added", "library_book"."updated" FROM "library_book" INNER JOIN "library_inventory" ON ("library_book"."id" = "library_inventory"."book_id") …