您将要使用Django的约定来跨关系连接以连接到查询集中的组表。
首先,我建议给您的关系a
related_name。这使得代码比Django默认生成的代码更具可读性。
class Group(models.Model): myuser = models.ForeignKey(User, related_name='groups')
如果只需要一个组,则可以通过以下任一方法加入该关系并比较名称字段:
form.fields['myuser'].queryset = User.objects.filter( groups__name='foo')form.fields['myuser'].queryset = User.objects.filter( groups__name__in=['foo'])
如果要限定多个组,请使用以下
in子句:
form.fields['myuser'].queryset = User.objects.filter( groups__name__in=['foo', 'bar'])
如果要快速查看生成的SQL,可以执行以下 *** 作:
qs = User.objects.filter(groups__name='foo')print qs.query
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)