在我的django應用程序中,我有一個用戶願望清單功能。我希望匿名用戶可以將產品添加到他的願望清單中。使用會話來存儲來自匿名用戶的數據
models.py
class User_Wishlist(models.Model):
created_by = models.ForeignKey(User, default=None, null =True, blank=True)
products = models.ManyToManyField(Products, null=True)
# some Products model
views.py
# to add an item from the user wishlist
def add_userwl(request, id):
products = Products.objects.filter(id__iexact=id)
product = products[0]
if request.user.is_authenticated():
userwlt = get_sl(request, request.user) #gets the auth user wishlist
userwlt.products.add(product)
sl_products = userwlt.products.all()
else:
if "wl_user" in request.session:
wl_user = request.session["wl_user"]
else:
wl_user = User_Wishlist(created_by = request.user) #here lies the problem!
request.session["wl_user"] = wl_user
wl_user.products.add(product)
wl_products = wl_user.products.all()
return render_to_response('getsl.html', {
'wl_products':wl_products
}, context_instance=RequestContext(request))
錯誤:無法分配「」:「User_Wishlist.created_by」必須是「用戶」實例。
因此,它不能爲匿名用戶創建一個願望清單。此外,如果我只是做wl_user = User_Wishlist(),它不能訪問manytomany領域的'產品'沒有分配用戶ID。
對此的任何幫助將是偉大的。謝謝!
P.S:我也想保存該用戶的心願,一旦匿名用戶註冊,但那是以後的問題
感謝您的回覆!所以我創建了一個用戶,user = User(username = request.session.session_key)..不知道給session_key作爲用戶名還是id是apt,只是暫時做了測試。效果很好! 您如何看待我可以創建一個用戶對象,請記住,稍後我希望在用戶註冊時保存這些數據。 –