2017-05-08 66 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) 
相關問題