ฉันมีโมเดล:
class Zone(models.Model):
name = models.CharField(max_length=128)
users = models.ManyToManyField(User, related_name='zones', null=True, blank=True)
และฉันต้องสร้างตัวกรองตามแนวของ:
u = User.objects.filter(...zones contains a particular zone...)
ต้องเป็นตัวกรองผู้ใช้และต้องเป็นพารามิเตอร์ตัวกรองเดียว เหตุผลนี้คือฉันกำลังสร้างสตริงการสืบค้น URL เพื่อกรองรายการเปลี่ยนผู้ใช้ของผู้ดูแลระบบ:http://myserver/admin/auth/user/?zones=3
ดูเหมือนว่ามันจะเรียบง่าย แต่สมองของฉันไม่ให้ความร่วมมือ!
User.objects.filter(zones__in=<id(s)>)
น่าจะเป็นUser.objects.filter(zones__id__in=<id(s)>)
User.objects.filter(zones__id=<id>)
หรือไม่User.objects.filter(zones__in=<id(s)>)
ดีสำหรับสิ่งนี้?