forloopでテーブルの各項目を表示しようとしていますが、一つの項目がmanytomanyのクラスでquerysetが返ってしまいます。
facility.purpose.allで、以下の通り表示されます。
<QuerySet [<Purpose: 食事>, <Purpose: スポーツ>]>
実際には以下のように表示したいです。
食事、スポーツ
querysetの中身を表示するにはどうすれば良いでしょう?
views
1class StoreInfoView(View): 2 def get(self, request, *args, **kwargs): 3 store_data = Store.objects.filter(id=self.request.user.id)[0] 4 facility_data = Facility.objects.filter(store__id=store_data.id) 5 return render(request, 'app/store_info.html', { 6 'store_data': store_data, 7 'facility_data': facility_data, 8 })
models
1class Store(models.Model): 2 user = models.ForeignKey(CustomUser, verbose_name='ユーザー', on_delete=models.CASCADE, related_name='related_store') 3 name = models.CharField('施設名称', max_length=100) 4 5 6 7class Purpose(models.Model): 8 name = models.CharField(max_length=30) 9 10class Facility(models.Model): 11 store = models.ForeignKey(Store, verbose_name='施設', on_delete=models.CASCADE, related_name='related_facility') 12 name = models.CharField('種別名称', max_length=100) 13 purpose = models.ManyToManyField(Purpose) 14 15
html
1 {% for facility in facility_data %} 2 <div class="card card-profile-manage my-5 mx-auto"> 3 <div class="card-body"> 4 <table class="profile_table mb-4"> 5 <tbody> 6 <tr> 7 <th class="header">種別名称</th> 8 <td class="data">{{ facility.name }}</td> 9 </tr> 10 11 <tr> 12 <th class="header">利用目的</th> 13 <td class="data">{{ facility.purpose.all }}</td> 14 </tr> 15 16 </tbody> 17 </table> 18 19 </div> 20 </div> 21 {% endfor %}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。