我有这两个模型,我想在页面中显示具有特定任务的项目。这些是我的模特:
class Project (models.Model):
name = models.CharField(verbose_name="Project name", max_length=25)
tasks = models.ManyToManyField(Task, verbose_name="tasksInProject", blank=True,
related_name="projects+")
class Task(models.Model):
name = models.CharField(verbose_name="Task", max_length=50)
我称这个观点为:
class TaskToProjectFilterView(DetailView):
model = Task
template_name = "vivs/task_filter.html"
context_object_name = "task_filter"
这是我的html模板:
<h4>filter : {{ task_filter }} </h4>
<h4>projects :
{% for element in task_filter.projects.all %}
{{ element }}
{% endfor %}
</h4>
此代码显示{{ task_filter }}
,但不显示{{ task_filter.projects.all }}
的列表。
答案 0 :(得分:1)
正如schwobaseggl所述,删除+
符号,它应该按预期工作,使用:
{% for element in task_filter.projects.all %}
来自Django Docs:
如果您不希望Django不创建向后关系,请将related_name设置为&#39; +&#39;或以&#39; +&#39;结束。例如,这将确保用户模型与此模型不具有向后关系: