我有一个在很多领域使用外键的模型:
class DefinitionTag(models.Model):
tag = models.CharField(max_length=50, default="Tag")
def __str__(self):
return self.tag
class Definition(models.Model):
name = models.CharField(max_length=100)
definition = models.CharField(max_length=1000)
fundstellen = models.CharField(max_length=300, blank=True)
wissenswertes = models.CharField(max_length=1000, blank=True)
tags = models.ManyToManyField(DefinitionTag)
def __str__(self):
return self.name
这个工作,并在管理员一切都设置好所以我可以使用它。问题是如果我尝试使用代码在我的视图中显示包含数据库条目的表:
def home(request):
query_results = Definition.objects.all()
context = {
"query_results": query_results
}
return render(request, 'home.html', context)
并在html中:
{% for item in query_results %}
<tr>
<td>{{ item.name }}</td>
<td>{{ item.definition }}</td>
<td>{{ item.fundstellen }}</td>
<td>{{ item.wissenswertes }}</td>
<td>{{ item.tags }}</td>
</tr>
{% endfor %}
在标签栏中,它只给我:
DefinitionTag.None
如何显示manytomany字段中选择的所有标签?
我希望我能得到一个暗示! 感谢
答案 0 :(得分:7)
您需要在m2m字段上循环以获取所有标记。只是提到它不会给你链接到它的单个标签:
{% for item in query_results %}
<tr>
<td>{{ item.name }}</td>
<td>{{ item.definition }}</td>
<td>{{ item.fundstellen }}</td>
<td>{{ item.wissenswertes }}</td>
<td>
{% for tag in item.tags.all %}
{{ tag }}
{% endfor %}
</td>
</tr>
{% endfor %}
如果您不确定如何从m2m字段中获取所有项目,请查看django doc。
答案 1 :(得分:2)
尝试循环标记:
{% for tag in item.tags.all %}
{{ tag }}
{% endfor %}