내 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"는 "사용자"인스턴스 여야합니다.
따라서 anon 사용자의 위시리스트를 만들 수 없습니다. 또한 wl_user = User_Wishlist()를 수행하면 사용자 ID를 지정하지 않고 manytomany 필드 'products'에 액세스 할 수 없습니다.
위의 사항에 대한 도움이 될 것입니다. 감사!
p.s : 나는 또한 익명의 사용자가 로그인 한 번이 사용자의 위시리스트를 저장하기를 원하지만 그게 나중에 문제
답장을 보내 주셔서 감사합니다! 그래서 나는 user = User (username = request.session.session_key)라는 사용자를 만들었습니다. session_key를 username 또는 id로 사용하는 것이 적절한 지 알지 못합니다. 잘 작동합니다! 어떻게 사용자 개체를 만들 수 있습니까? 나중에 사용자가 등록 할 때이 데이터를 저장해야한다는 것을 명심하십시오. –