2017-05-02 76 views
0

我是Django的新手。我想弄清楚如何將MyModel(manytomany)的tags屬性放到MyModel中的每個對象的模板(mytemplate.html)上。注意:標籤管理中有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個可能的'標籤'

{% 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 %}