2017-05-02 18 views
0

Djangoを初めて使用しました。私はMyModelの各オブジェクトのテンプレート(mytemplate.html)にMyModel(manytomany)のタグプロパティを取得する方法を理解しようとしています。注:タグ管理には4つのタグがあります。 MyModelのオブジェクトの一部には2つのタグがあり、一部には1があります。テンプレートに各オブジェクトの一意のタグをどのように取得するのですか?ここに私のファイルは、以下のとおりです。Django-モデルでManyToManyFieldを使用して動的テンプレートを作成する方法

models.py

class Tag(models.Model): 
    CATEGORY_CHOICES = (
     ('dataset', 'dataset'), 
     ('brand', 'brand'), 
    ) 
    tag = models.CharField(max_length=100) 
    category = models.CharField(max_length=100, choices=CATEGORY_CHOICES) 

class MyModel(models.Model): 
    id = models.CharField(max_length=30, primary_key=True) 
    publish_date = models.DateField() 
    tags = models.ManyToManyField(Tag) 

views.py

from .models import MyModel, Tag 

def index(request): 

    tags = Tag.objects.all() 

    infos = MyModel.objects.all().order_by('publish_date').reverse() 

    return render(request, 'mytemplate.html', {'infos': infos, 'tags':tags}) 

mytemplate.html

今、これはわずか4つのp要素を作成します - 可能な4つの「タグ」すべてに1つ

{% for info in infos %} 
    <small>{{info.publish_date}}</small> 
    {% for tag in tags %} 
     <p>{{tag.tag}}</p> 
    {% endfor %} 
{% endfor %} 

答えて

0

{% for info in infos %} 
    <small>{{info.publish_date}}</small> 
    {% for tag in info.tags.all %} 
     <p>{{tag.tag}}</p> 
    {% endfor %} 
{% endfor %} 
をお試しください
関連する問題