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
可以同时属于多个组,因此您可能获得属于不同 accountOwner
的 Customer
。例如,如果登录用户同时属于 DOGS 和 CATS 组,那么您将获得属于 DOGS 组的 Customer
以及属于 CATS 组的 Customer
。
我正在尝试过滤与登录用户所属组相关的视图。
假设我们有一个用户属于 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
可以同时属于多个组,因此您可能获得属于不同 accountOwner
的 Customer
。例如,如果登录用户同时属于 DOGS 和 CATS 组,那么您将获得属于 DOGS 组的 Customer
以及属于 CATS 组的 Customer
。