我是Django的新手。我试图弄清楚如何将MyModel(manytomany)的tags属性添加到MyModel中每个对象的模板(mytemplate.html)上。注意:标签管理员中有4个可能的标签。 MyModel中的一些对象有2个标签,有些标签有1.我如何在模板上获得每个对象唯一的标签选择?这是我的文件:
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 :(得分:0)
尝试以下
{% for info in infos %}
<small>{{info.publish_date}}</small>
{% for tag in info.tags.all %}
<p>{{tag.tag}}</p>
{% endfor %}
{% endfor %}