使用详细视图在django模板中显示数据

使用详细视图在django模板中显示数据,django,django-models,django-templates,django-views,Django,Django Models,Django Templates,Django Views,我在DetailView模板上显示数据时遇到问题,基本上我想显示一个项目区域和任务的所有数据,我的模型就是这样 ##models class Project(models.Model): name = models.CharField(max_length=100) ... class Area(models.Model): name = models.CharField(max_length=100) proj

我在DetailView模板上显示数据时遇到问题,基本上我想显示一个项目区域和任务的所有数据,我的模型就是这样

##models    
class Project(models.Model):
        name = models.CharField(max_length=100)
        ...


    class Area(models.Model):
        name = models.CharField(max_length=100)
        project = models.ForeignKey(Project ,on_delete=models.CASCADE,  related_name='areas' )

    class Task(models.Model):
        ....
        area = models.ForeignKey(Area ,on_delete=models.CASCADE,  related_name='tasks' )

#view 
class ProjectDetailView(DetailView):
    model = Project
    template_name = 'project-detail.html'
这最终在模板中起作用
{%for object.areas.all%}
{{area}}
{%t在area.tasks.all%} {{t}}
{%endfor%}
{%endfor%}
您可以尝试修改以下细节:

#view 
class ProjectDetailView(DetailView):
    model = Project
    template_name = 'project-detail.html'
    def get_queryset(self):
        return Project.objects.all().prefetch_related('areas__tasks')

然后尝试在模板中显示数据
task

您还没有显示您尝试的内容。如果可以显示区域,则应该能够显示任务。发布你的模板。@DanielRoseman谢谢你休息一下,头脑清醒地检查一下,我在模板中看到了问题所在。我想知道的是,在模板内循环是唯一的解决方案!?iis是否可以通过实例以Queryset筛选的形式添加额外的上下文?我的问题是模板预取相关的内容将有助于减少对数据库的查询,仅此而已。
#view 
class ProjectDetailView(DetailView):
    model = Project
    template_name = 'project-detail.html'
    def get_queryset(self):
        return Project.objects.all().prefetch_related('areas__tasks')