私はDjangoのオンラインストア(現在の基本的なショッピングカート)で作業しています。ユーザーにアイテムをお気に入りとしてマークする機能を追加する予定ですスタックオーバーフローで)。カートのモデルは次のようになります。匿名ユーザーに登録済みのものと同じ機能を付与
class Cart(models.Model):
user = models.OneToOneField(User)
class CartItem(models.Model):
cart = models.ForeignKey(Cart)
product = models.ForeignKey(Product, verbose_name="produs")
お気に入りモデルは、ユーザーと製品の2つの行を持つテーブルに過ぎません。
私はユーザーオブジェクトが必要なので、これは登録ユーザーの場合にのみ機能するという問題があります。登録されていないユーザーにこれらの機能を使用させ、クッキー/セッションにデータを保存させるにはどうしたらいいですか?
私は1つの選択肢がある種の一般的な関係になると思うが、それは少し複雑だと思う。たぶん、のユーザの後に特別な行があるかもしれません。これはセッションオブジェクトです(私は今までdjangoでセッションを使用していませんでした)。
基本的に、私が尋ねたいのは、以前にこの問題があった場合、どのように解決しましたか、最良のアプローチは何ですか?
+1:匿名ユーザーには、パスワードなしで必要な一時的ユーザーIDを作成するために使用できるIPアドレスがまだあります。彼らが登録するとき、あなたは実際に彼らに適切な名前とパスワードを持ってアップグレードしています。 –
いいアイデア、私はそれを考えなかった。ありがとう! –
IPアドレスを一意のキーとして使用することはできません。ファイアウォールで保護さ – tzot