Django ORM:具有至少一组的所有用户

gue*_*tli -1 django django-queryset

我想找到至少属于一组的所有用户。

我找到了解决方案

from django import setup

setup()

from django.contrib.auth.models import User
user_without_group = User.objects.update_or_create(username='user-without-group')[0]
user_without_group.groups.clear()
query = User.objects.filter(groups__isnull=False).values_list('username', flat=True)
print (query.query)
print list(query)
assert user_without_group.username not in query
Run Code Online (Sandbox Code Playgroud)

...但是解决方案不是很好。有没有比这更明显的解决方案groups__isnull=False

更新

为什么我认为此解决方案不好:我认为这并不明显。阅读和理解并不容易。如果您向了解Python但从未使用过django ORM的人展示此内容,我认为他不会立即理解这意味着什么。

User.objects.filter(groups__isnull=False)
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 5

我不确定你反对什么groups__isnull=False; 绝对好 请注意,尽管它与完全等效groups=None,但您可能会发现它更好一些。