Django:用户所属组的查询过滤器

Django: query filter for group in which user is part

我正在尝试过滤与登录用户所属组相关的视图。

假设我们有一个用户属于 DOGS 组。我想出了如何过滤一个特定的,这意味着已知组名 = DOGS。

Models.py

from django.contrib.auth.models import Group

    class Customer(models.Model):
        customerName = models.CharField(max_length=50)
        accountOwner = models.ForeignKey(Group, null=True, related_name='usGroup', on_delete=models.SET_NULL )

如何在

中做到这一点

views.py:

from django.contrib.auth.models import User, Group

 @login_required
    def home(request):
        myData = Customer.objects.filter("Return only data of the group to which the user belongs".)

你有什么提示吗?我只找到了过滤特定组名的解决方案,但没有找到登录用户的 属性。

提前致谢!

如果我没理解错的话,你想获取所有的Customer,如accountOwner,一个Group对象,登录的User所属。

一个请求有一个 request.user 属性,它存储登录的用户。然后我们可以过滤这个:

@login_required
def home(request):
    myData = Customer.objects.filter(<b>accountOwner__user=request.user</b>)

请注意,由于 User 可以同时属于多个组,因此您可能获得属于不同 accountOwnerCustomer。例如,如果登录用户同时属于 DOGS 和 CATS 组,那么您将获得属于 DOGS 组的 Customer 以及属于 CATS 组的 Customer