前提・実現したいこと
Djangoにおいて多対多のリレーショナルデータベースを作成する際ManytoManyFieldsを使いましたが、ManytoManyFieldsが入った項目がtemplatesで表示できません!
現在、Djangoを用いて多対多のリレーションのあるデータベースを含んだWebアプリを作ってます。
templatesの中においたhtmlファイルには表示できるようコードを書いたつもりなのですがブラウザで見ても表示されませんでした。(下に画像を貼りました)
発生している問題・エラーメッセージ
該当のソースコード
viewspy
1from django.shortcuts import render 2from .models import Component, FoodInfo 3 4def homepagefunc(request): 5 food_lists = FoodInfo.objects.all() 6 7 return render(request, 'home.html', {'food_list':food_lists})
homehtml
1{% extends 'base.html' %} 2{% block content %} 3 <h1>Home</h1> 4 <div class="container"> 5 {% for f in food_list %} 6 {{ f.food_name }} 7 {% for food in food_list.materials.all %} 8 <p>{{ food }}</p> 9 {% endfor %} 10 {% endfor %} 11 </div> 12{% endblock %}
modelspy
1from django.db import models 2 3class Component(models.Model): 4 component_name = models.CharField(max_length=100) 5 6 def __str__(self): 7 return self.component_name 8 9class FoodInfo(models.Model): 10 food_name = models.CharField(max_length=100) 11 materials = models.ManyToManyField(Component) 12 13 def __str__(self): 14 return self.food_name
試したこと
viewsでfood_listをコンテキストに渡してhome.htmlでfood_listをfor文で回して表示できるか試しましたが上手くいきませんでした。
補足情報(FW/ツールのバージョンなど)
Python 3.7.4
Django==2.2.6
pytz==2019.3
sqlparse==0.3.0
あなたの回答
tips
プレビュー