2017-05-08 69 views
-1

我想尝试设置一个私人网站,用户可以在其中购买预订,但登录后只能在整个商店内查看自己的预订.Sayor似乎是最完整的电子商务套餐的Python/Django的。通过用户电子邮件限制访问Django Saleor

有没有办法阻止访问使用类别?因为我可以创建一个“Johnson Family”类别,并且只选择某些用户访问“Johnson Family”类别,如果我批准他们的电子邮件来访问。然后,那些用户会在店内专门为他们看到“产品”或“预订”。编辑:道歉,我应该问'如何',而不是'如果'当然可以在Django完成,但我不确定'怎么做'?

+0

在显示特定用途的输出时,可以根据用户权限筛选出产品? –

+0

您应该提供一些代码,显示您试图执行的操作,以及您遇到问题的模式类或失败的模式类,以便针对您的问题获得解决方案。 –

回答

1

当你问一个广义的问题,这里是广义的解决方案:

有没有办法可以阻止访问使用类别?

是的,你可以。 Django验证模块有一个组的概念,您可以在其中创建一个组并将用户添加到该组。然后在您的视图中,您可以检查用户是否属于特定的组。你可以这样做:

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

#create the group 
group = Group(name='Johnson Family') 
group.save() 

# Add user to the group 
user = User.objects.get(email='[email protected]') 
user.groups.add(group) 

# Call this method from your view to check if user belongs to a group 
def is_member(user, group_name): 
    return user.groups.filter(name=group_name).exists() 

那么这些用户会再看看“产品”或“预约”专门为他们的店铺内。

为此,您可以随时过滤queryset以返回属于特定用户的对象。例如(假设产品和预订型号对用户有外键):

Product.objects.filter(user=some_user) 
Booking.objects.filter(user=some_user) 
相关问题