Django TypeError: '~' object is not iterableエラーについて
前提・実現したいこと
お世話になります。
テンプレートでfor文を使い表示させようとしたところエラーが出てしまいました。
どうぞよろしくお願いいたします。
発生している問題・エラーメッセージ
TypeError: 'BoughtProduct' object is not iterable
該当のソースコード
models.py
class BoughtProduct(models.Model):
user = models.ForeignKey(Users, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
views.py
def bought_products(request,bought_products_id):
products = Product.objects.get(id=bought_products_id)
if products.count >= 1:
bought_products=BoughtProduct()
bought_products.product = products
bought_products.user = request.user
bought_products.save()
bought_product = bought_products
else:
raise ValidationError('エラーが発生しました。事務局までお問い合わせください。')
if request.method =="GET":
#----email-----
subject = 'TEXMA: 商品が購入されました。'
message = """商品が購入されました。\n商品名: {}\n発送場所{}""".format(products.product_name,products.place)
email_from = request.user.email
email_to = [products.user.email,]
send_mail(subject, message, email_from, email_to)
return render(request, 'buy_products.html',context={
'products':products,
'bought_product':bought_product
})
buy_product.html
{% extends 'base.html' %}
{% block content %}
<h1>購入商品一覧</h1>
{% for product in bought_product %}
{% if product.user == request.user %}
{{product.product_name}}
{%endif%}
{%endfor%}
{%endblock%}
試したこと
データを挿入してみましたがダメでした。
bought_productはmodelのBoughtProductで、全ての値がForeignKeyです。
ですので、テンプレートに下記のように書いてみたのですが、エラーになってしまいました。
buy_product.html
{% extends 'base.html' %}
{% block content %}
<h1>購入商品一覧</h1>
{% for product in bought_product.product %}
{% if product.user == request.user %}
{{product.product_name}}
{%endif%}
{%endfor%}
{%endblock%}
上記のエラー内容
'Product' object is not iterable
補足情報(FW/ツールのバージョンなど)
Django3, python3.8
0