2017-01-06 20 views
0

私のビューでManyToManyフィールドをレンダリングするときに問題があります。Django QuerySetで不適切な文字列が表示される

#Models:

from django.db import models 


class Ingredient(models.Model): 
    content = models.CharField(max_length=300, default='') 

    def __str__(self): 
     return self.content 


class Drink(models.Model): 
    ingredient = models.ManyToManyField(Ingredient) 
    title = models.CharField(max_length=300) 
    description = models.TextField(max_length=500) 

    def __str__(self): 
     return self.title 

#View:

from django.shortcuts import render 
from .models import Drink, Ingredient 


def index(request): 
    drinks = Drink.objects.all() 
    context = {'drinks': drinks} 
    return render(request, 'drinks/index.html', context) 

#Template:ここ

{% for i in drinks %} 
    <h3>{{ i.title }}</h3> 
    <p><b>Description:</b> <br>{{ i.description }}</p> 
    <p>{{ i.ingredient.all }}</p> 
{% endfor %} 

は私のウェブサイトである:

Screw driver 

Description: 
Good drink made of pure vodka and California cultured oranges. 

<QuerySet [<Ingredient: Vodka>, <Ingredient: Orange juice>]> 

最後の文字列をフィルタリングまたは書式設定する適切な方法が見つかりません。 アイデアを持っている人はいますか?

+2

「ドリンク」の反復方法は既に知っています。 'i.ingredient.all'と同じことをやってみませんか?それらはどちらもクエリーセットです。 –

+0

ええ、私は分かっていません...私は分かりませんでした。ありがとうございました! – MB95

答えて

1

また、成分を繰り返し処理する必要があります。

{% for i in drinks %} 
    <h3>{{ i.title }}</h3> 
    <p><b>Description:</b> <br>{{ i.description }}</p> 
    {% for j in i.ingredient.all %} 
     <p>{{ j }}</p> 
{% endfor %} 
+0

ああ...もちろん、私の愚かなこと...ありがとうございました。 – MB95

関連する問題