使用详细视图在django模板中显示数据
我在DetailView模板上显示数据时遇到问题,基本上我想显示一个项目区域和任务的所有数据,我的模型就是这样使用详细视图在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
##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')