前提
お世話になります。
只今、メルカリのようなサイトを作っております。
商品はProduct, 登録ユーザーはUsersとmodel.pyに記載しております。
商品一覧画面に全ての商品を掲載するために、ProductモデルにUsersの外部キーを設定しております。
メルカリのようにマイページを作り、自分が出品した商品の一覧を出すページを作ろうとしているのですが、
Usersにproductの外部キーがないため、自分の商品をDBからどのように取得すれば良いのかがわからず大変困っております。
初心者ゆえ、足りない情報などがあるかもしれませんが、どうぞよろしくお願い申し上げます
###実現したいこと
登録したユーザーが出品した商品を,そのユーザーのマイページで表示したいです。
該当のソースコード
models.py
class Users(AbstractBaseUser,PermissionsMixin ): email = models.EmailField(max_length=30, unique=True) username = models.CharField(max_length=30, unique=True)d objects = UserManager() USERNAME_FIELD ='email' #このレコードを識別する REQUIRED_FIELDS =['username']#スーパーユーザー作成時に使用する class Meta: db_table='users' def __str__(self): return self.email class Product(models.Model): product_name = models.CharField(max_length=50) product_description = models.CharField(max_length=200) user = models.ForeignKey(Users, on_delete=models.CASCADE) class Meta: db_table = 'product' def __str__(self): return self.products_name
試したこと
views.pyで以下のようにコードを書いてみました。
def user_page_product(request, id): user_id = request.id user_product = Product.objects.get(user_id=user_id).all() return render(request, 'my_page.html',context={ 'user_product':user_product })
下の画像はproductテーブルです。
![]
ProductモデルにUsersの外部キーがあります(user_id)。
そこで、Productのuser_idで自分が出品した商品を絞り込み、
そこからその商品のidを取得しようと考えました。(views.py)
user_product = Product.objects.get(user_id=user_id).all()
ですが、うまく動作しませんでした。
特にエラーメッセージなどはありませんでした。
もしやり方などがあればご教授願いたいです。
どうぞよろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。