前提・実現したいこと
お世話になります。
只今、メルカリのようなサイトを作っております。
商品はProduct, 登録ユーザーはUsersとmodel.pyに記載しております。
商品一覧画面に全ての商品を掲載するために、ProductモデルにUsersの外部キーを設定しております。
メルカリのようにマイページを作り、自分が出品した商品の一覧を出すページを作ろうとしているのですが、
Usersにproductの外部キーがないため、自分の商品をDBからどのように取得すれば良いのかがわからず大変困っております。
初心者ゆえ、足りない情報などがあるかもしれませんが、どうぞよろしくお願い申し上げます
該当のソースコード
class Users(AbstractBaseUser,PermissionsMixin ): email = models.EmailField(max_length=30, unique=True) username = models.CharField(max_length=30, unique=True) password = models.CharField(max_length=30,) confirm_password = models.CharField(max_length=30,) grade = models.CharField(max_length=20) student_num = models.CharField(max_length=8) is_active = models.BooleanField(default=True) is_staff = models.URLField(default=False) user_picture = models.FileField(upload_to='user_picture/') objects = UserManager() USERNAME_FIELD ='email' #このレコードを識別する REQUIRED_FIELDS =['username']#スーパーユーザー作成時に使用する class Meta: db_table='users' def __str__(self): return self.email # class ProductManager(models.Manager): # def fetch_by_user_id(self,user_id): # return self.filter(user_id=user_id).all() class Product(models.Model): product_name = models.CharField(max_length=50) product_description = models.CharField(max_length=200) product_status = models.CharField(max_length=50) product_delivery = models.CharField(max_length=50) price = models.IntegerField() product_picture1 = models.FileField(upload_to='product_picture1/') product_picture2 = models.FileField(upload_to='product_picture2/') product_picture3 = models.FileField(upload_to='product_picture3/') lecture_name = models.CharField(max_length=100) faculty = models.CharField(max_length=50) department = models.CharField(max_length=50) grade = models.CharField(max_length=50) place = models.CharField(max_length=20) like = models.IntegerField(default=0) user = models.ForeignKey(Users, on_delete=models.CASCADE) # objects=ProductManager() 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 })
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。