我有这两个模型,我想在我的页面中显示具有特定任务的项目。这些是我的模型:
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 }}
列表。
你可以帮我吗?我不明白我的错误。谢谢!
正如 schwobaseggl 所说,删除 +
符号,它应该按预期工作,使用:
{% for element in task_filter.projects.all %}
来自 Django 文档:
如果你不希望 Django 创建向后关系,请将related_name设置为 '+' 或以 '+' 结尾。例如,这将确保用户模型不会与此模型具有向后关系: