отображение данных в шаблоне django с использованием подробного представления - PullRequest
0 голосов
/ 25 января 2019

У меня проблема с отображением данных в DetailView Template, в основном хочу отобразить все данные областей и задач одного проекта, которые мои модели выглядят так

##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 area in object.areas.all %}
    {{area}}<br />
    {% for t in area.tasks.all %}
     {{ t }}<br />
     {% endfor %}
     <hr/>
{% endfor %}

1 Ответ

0 голосов
/ 25 января 2019

вы можете попробовать prefetch_related и изменить детали, как это:

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

и попробовать показать данные task в шаблоне

...