私の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" は "User" インスタンスでなければなりません。
そのため、anon ユーザーのウィッシュリストを作成することはできません。また、wl_user = User_Wishlist() を実行しただけでは、ユーザー ID を割り当てないと、manytomany フィールド 'products' にアクセスできません。
これに関するヘルプは素晴らしいでしょう。ありがとう!
ps: anon ユーザーがサインアップしたら、このユーザーのウィッシュリストも保存したいのですが、それは後で問題になります