通过用户电子邮件限制访问 Django Saleor

Restricting access via user email Django Saleor

我想尝试建立一个私人网站,用户可以在其中购买预订,但登录后只能在整个商店内查看他们自己的预订。Saleor 似乎是 Python/Django 最完整的电子商务包.

有什么方法可以阻止使用类别的访问吗?例如,我可以创建一个类别 'Johnson Family',并且只有 select 某些用户可以访问 'Johnson Family' 类别,如果我批准他们的电子邮件具有访问权限的话。然后这些用户会在商店内看到专门针对他们的 'products' 或 'bookings'。

编辑:抱歉,我应该问 'how' 而不是 'if' 当然可以在 Django 中完成,但我不确定 'how?'

由于您问的是一个笼统的问题,这里是笼统的解决方案:

Is there a way i can block access to using categories?

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

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='some@email.id')
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()

Then those users would then see 'products' or 'bookings' specifically for them within the shop.

为此,您始终可以将查询集过滤为 return 属于特定用户的对象。例如(假设产品和预订模型有用户的外键):

Product.objects.filter(user=some_user)
Booking.objects.filter(user=some_user)