我有一個從表單輸入存儲用戶和產品數據的Django模型:Django的存儲匿名用戶數據
def ProductSelection(request, template_name='product_selection.html'):
...
if user.is_authenticated():
user = request.user
else:
# deal with anonymous user info
project = Project.objects.create(
user=user,
product=form.cleaned_data["product"],
quantity=form.cleaned_data["product_quantity"],
)
當然,這是罰款身份驗證的用戶,但我也希望能夠存儲匿名用戶項目,並且如果可能的話,在它們最終註冊和認證時將它們與用戶相關聯。
我的想法是創建名稱= some_variable(時間戳與隨機散列?)連接的匿名用戶,然後將該用戶名保存在會話數據中。如果我確保會話變量(如果存在)用於記錄該用戶的所有項目活動,那麼我應該能夠在註冊時使用用戶的真實憑證更新項目。
這是過於複雜和脆弱?我有沒有必要不必要地保存數千行數據?這個常見問題的最佳方法是什麼?
任何有關這方面的指導將不勝感激。
當我在過去遇到過類似的問題時,當你需要回到另一個方向時,問題就出現了。就像用戶可以擁有多個項目一樣,並且您需要做一些事情,比如看看哪些會話喜歡兩個特定的項目。 – JeffS
就我而言,我希望將匿名用戶數據存儲在數據庫中,並通過會話將其與特定用戶相關聯。如果'user = request.user'返回一個匿名用戶對象,我不能在註冊後將這些信息綁定到用戶。 –
在這種情況下,我的第一個示例應該這樣做:添加一個字段以保存'session_key'值,然後您可以稍後檢索所需的Project實例,並在匿名用戶停止匿名時將其與新用戶關聯:-) –