我正在尝试过滤与已登录用户所属的组相关的视图。
可以说我们有一个用户属于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".)
您有提示吗?我只找到了用于过滤特定组名的解决方案,但没有找到已登录用户的属性的解决方案。
谢谢!
答案 0 :(得分:2)
如果我正确理解,您想以Customer
(登录accountOwner
所属的Group
对象)获取所有User
。
请求具有request.user
属性,该属性存储已登录的用户。然后,我们可以对此进行过滤:
@login_required
def home(request):
myData = Customer.objects.filter(accountOwner__user=request.user)
请注意,由于User
可以同时属于多个组,因此有可能获得属于不同Customer
的{{1}}。例如,如果登录用户既属于DOGS组又属于CATS组,那么您将获得accountOwner
个属于DOGS组的Customer
个属于