【发布时间】:2011-01-14 04:04:36
【问题描述】:
我有一个模型:
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__id=<id>)或User.objects.filter(zones__in=<id(s)>)不适合这个吗? -
没关系 :) BTW
User.objects.filter(zones__in=<id(s)>)应该是User.objects.filter(zones__id__in=<id(s)>) -
只是想指出任何谷歌搜索的人,它只有在设置了相关名称时才有效。 zone_set 不起作用,例如。浪费了半个小时的时间:-)
标签: django django-models