姜戈 1.10.5
def limit_contributor_choices():
limit = Q(group__name="contributor") | Q(group__name="Group")
return limit
author = models.ForeignKey(
settings.AUTH_USER_MODEL,
blank=True, null=True,
limit_choices_to=limit_contributor_choices,
verbose_name=_('Author'),
on_delete=models.SET_NULL,
related_name='author_pages',
)
使用以下代码,如果用户属于多个组,则查询会多次返回该用户。如何获得不同的值?
我在 wagtail 管理中使用它,其中自动生成下拉列表。
也许另一种看待它的方法是重写查询集并添加distinct()?如果是这样,我不知道如何在 wagtailadmin 中覆盖它
一个可能的技巧是编译用户 ID 列表,然后将其作为过滤条件返回:
def limit_contributor_choices():
allowed_user_ids = User.objects.filter(Q(group__name="contributor") | Q(group__name="Group")).values_list('id', flat=True)
return Q(id__in=allowed_user_ids)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)